public class EnumObjectUtils extends Object
Utilities for descriptive enum, such as:
| Constructor and Description |
|---|
EnumObjectUtils() |
| Modifier and Type | Method and Description |
|---|---|
static <E extends Enum & IConfigSubKey> |
asConfigSubKeyEnumArray(Class<E> enumClass)
retrieve all enum values as array
|
static <E extends Enum & IDescriptiveEnum> |
asDescriptiveEnumArray(Class<E> enumClass)
retrieve all enum values as array
|
static <E extends Enum & IDescriptiveEnum> |
asDescriptiveEnumList(Class<E> enumClass)
retrieve all enum values as list
|
static <K,E extends Enum & IDescriptiveEnum<K>> |
asDescriptiveEnumMap(Class<E> enumClass)
retrieve all enum values as code->enum
HashMap |
static <K,E extends Enum & IDescriptiveEnum<K>,T extends AbstractDescriptiveEnumObject<E,K>> |
asDescriptiveEnumObject(Class<T> enumObjectClass,
E enumInstance)
convert enum into POJO object
|
static <K,E extends Enum & IDescriptiveEnum<K>,T extends AbstractDescriptiveEnumObject<E,K>> |
asDescriptiveEnumObjectArray(Class<E> enumClass,
Class<T> enumObjectClass)
retrieve all enum values as pojo array
|
static <K,E extends Enum & IDescriptiveEnum<K>,T extends AbstractDescriptiveEnumObject<E,K>> |
asDescriptiveEnumObjectList(Class<E> enumClass,
Class<T> enumObjectClass)
retrieve all enum values as pojo list
|
static <K,E extends Enum & IDescriptiveEnum<K>,T extends AbstractDescriptiveEnumObject<E,K>> |
asDescriptiveEnumObjectMap(Class<E> enumClass,
Class<T> enumObjectClass)
retrieve all enum values as code->pojo map
|
static <E extends Enum> |
asEnumArray(Class<E> enumClass)
retrieve all enum values as array(泛类enum)
|
static <K,E extends Enum & IDescriptiveEnum<K>> |
getByCode(Class<E> enumClass,
K code)
get enum by code
|
static <K,T extends Enum & IDescriptiveEnum<K>> |
getByGenericCode(Class<T> enumClass,
String code)
如果知晓IDescriptiveEnum参数类型,可以使用
getByCode(Class, Object) 方法 |
static ConfigKey |
getConfigKeyByCode(String code)
以编码获取ConfigKey 枚举类
|
static <K,E extends Enum & IConfigSubKey<K>> |
getConfigSubKeyByCode(Class<E> enumClass,
K code)
get enum by code
|
static <E extends Enum & IConfigSubKey> |
getSubKeyClassForConfigKey(ConfigKey configKey)
获取配置组的“子配置”的枚举类
|
static <T extends Enum<T>> |
stringToEnum(Class<T> enumType,
String enumName)
转换字符串成指定enum类(泛类enum)
|
public static <K,E extends Enum & IDescriptiveEnum<K>> E getByCode(Class<E> enumClass, K code)
get enum by code
usage:
// === enum class ... ===
public enum SampleEnum implements IDescriptiveEnum<String> {
// implement enum ...
}
// === usage ===
SampleEnum enumIns = EnumObjectUtils.getByCode(SampleEnum.class, "0");
K - code type of descriptive enumE - descriptive enum type (implement IDescriptiveEnum)enumClass - must be implementing IDescriptiveEnum<K> interfacecode - <K> code typepublic static <T extends Enum<T>> T stringToEnum(Class<T> enumType, String enumName)
转换字符串成指定enum类(泛类enum)
T - 泛类继承enumenumType - Class 想要转换的enum类enumName - 该enum类toString()的值public static <K,E extends Enum & IDescriptiveEnum<K>,T extends AbstractDescriptiveEnumObject<E,K>> T asDescriptiveEnumObject(Class<T> enumObjectClass, E enumInstance)
convert enum into POJO object
usage:
// === enum class ... ===
public enum SexEnum implements IDescriptiveEnum<Character> {
MALE('M', "male"), FEMALE('F', "FEMALE");
SexEnum(char code, String description) {
// implement enum ...
}
}
// === enum object class ===
class SexEnumObject extends DescriptiveEnumObject<SexEnum, Character> {
// implement constructor ...
public SexEnumObject(SexEnum enumInstance) {
super(enumInstance);
}
}
// === usage ===
public class TestMain {
public static void main(String[] args) {
Gson gson = new Gson();
SexEnumObject mSexObj = EnumObjectUtils.asDescriptiveEnumObject(SexEnumObject.class, SexEnum.MALE);
System.out.println("sex = "+gson.toJson(mSexOb));
}
}
K - code type of descriptive enumE - descriptive enum type (implement IDescriptiveEnum)T - a child class of AbstractDescriptiveEnumObject class, as a container bean for accepting the result of enum conversionenumObjectClass - must be implementing IDescriptiveEnum<K> interfaceenumInstance - enum instanceAbstractDescriptiveEnumObject pojo instance representing enumpublic static <E extends Enum> E[] asEnumArray(Class<E> enumClass)
retrieve all enum values as array(泛类enum)
E - generic enum typeenumClass - generic enum classpublic static <E extends Enum & IDescriptiveEnum> List<E> asDescriptiveEnumList(Class<E> enumClass)
retrieve all enum values as list
E - descriptive enum type (implement IDescriptiveEnum)enumClass - must be implementing IDescriptiveEnum<K> interfaceList of enum Epublic static <K,E extends Enum & IDescriptiveEnum<K>> Map<K,E> asDescriptiveEnumMap(Class<E> enumClass)
retrieve all enum values as code->enum HashMap
K - code type of descriptive enumE - descriptive enum type (implement IDescriptiveEnum)enumClass - must be implementing IDescriptiveEnum<K> interfaceMap of code K->enum Epublic static <K,E extends Enum & IDescriptiveEnum<K>,T extends AbstractDescriptiveEnumObject<E,K>> T[] asDescriptiveEnumObjectArray(Class<E> enumClass, Class<T> enumObjectClass)
retrieve all enum values as pojo array
K - code type of descriptive enumE - descriptive enum type (implement IDescriptiveEnum)T - enum object, subclass of AbstractDescriptiveEnumObjectenumClass - must be implementing IDescriptiveEnum<K> interfaceenumObjectClass - enum object class, inherits AbstractDescriptiveEnumObjectAbstractDescriptiveEnumObject representing Epublic static <K,E extends Enum & IDescriptiveEnum<K>,T extends AbstractDescriptiveEnumObject<E,K>> List<T> asDescriptiveEnumObjectList(Class<E> enumClass, Class<T> enumObjectClass)
retrieve all enum values as pojo list
K - code type of descriptive enumE - descriptive enum type (implement IDescriptiveEnum)T - enum object, subclass of AbstractDescriptiveEnumObjectenumClass - must be implementing IDescriptiveEnum<K> interfaceenumObjectClass - enum object class, inherits AbstractDescriptiveEnumObjectList of pojo AbstractDescriptiveEnumObject representing Epublic static <K,E extends Enum & IDescriptiveEnum<K>,T extends AbstractDescriptiveEnumObject<E,K>> Map<K,T> asDescriptiveEnumObjectMap(Class<E> enumClass, Class<T> enumObjectClass)
retrieve all enum values as code->pojo map
K - code type of descriptive enumE - descriptive enum type (implement IDescriptiveEnum)T - enum object, subclass of AbstractDescriptiveEnumObjectenumClass - must be implementing IDescriptiveEnum<K> interfaceenumObjectClass - enum object class, inherits AbstractDescriptiveEnumObjectMap of code K->pojo AbstractDescriptiveEnumObject representing Epublic static <K,E extends Enum & IConfigSubKey<K>> E getConfigSubKeyByCode(Class<E> enumClass, K code)
get enum by code
usage:
// === enum class ... ===
public enum SampleEnum implements IDescriptiveEnum<String> {
// implement enum ...
}
// === usage ===
SampleEnum enumIns = EnumObjectUtils.getByCode(SampleEnum.class, "0");
K - code type of descriptive enumE - descriptive enum type (implement IConfigSubKey)enumClass - must be implementing IConfigSubKey<K> interfacecode - <K> code typepublic static ConfigKey getConfigKeyByCode(String code)
code - 租户配置组编码ConfigKey 枚举类public static <E extends Enum & IConfigSubKey> Class<E> getSubKeyClassForConfigKey(ConfigKey configKey)
E - (实现 IConfigSubKey) “子配置”的枚举类configKey - ConfigKey 银行专属配置枚举类(组)IConfigSubKey “子配置”的枚举类IConfigSubKeypublic static <E extends Enum & IDescriptiveEnum> E[] asDescriptiveEnumArray(Class<E> enumClass)
retrieve all enum values as array
E - descriptive enum type (implement IDescriptiveEnum)enumClass - must be implementing IDescriptiveEnum<K> interfacepublic static <E extends Enum & IConfigSubKey> E[] asConfigSubKeyEnumArray(Class<E> enumClass)
retrieve all enum values as array
E - configSubKey enum type (implement IConfigSubKey)enumClass - must be implementing IConfigSubKey<K> interfacepublic static <K,T extends Enum & IDescriptiveEnum<K>> T getByGenericCode(Class<T> enumClass, String code) throws Exception, ClassNotFoundException, ClassCastException
如果知晓IDescriptiveEnum参数类型,可以使用getByCode(Class, Object) 方法
若不知晓参数类型,可以使用此方法,统一传入String 类
K - IDescriptiveEnum 枚举类的参数“编码”类型T - IDescriptiveEnum 枚举类enumClass - 想获得解析的实际枚举类code - 想获得的编码(字符串)ClassNotFoundException - enum class is missingClassCastException - failed to cast code to enumExceptionCopyright © 2018 com.github.avatar21. All rights reserved.