public class EnumUtil extends Object
Constructor and Description |
---|
EnumUtil() |
Modifier and Type | Method and Description |
---|---|
static <E extends Enum<E>> |
contains(Class<E> enumClass,
String val)
判断某个值是存在枚举中
|
static boolean |
equals(Enum<?> e,
String val)
检查某个枚举值是否匹配指定值
|
static boolean |
equalsIgnoreCase(Enum<?> e,
String val)
忽略大小检查某个枚举值是否匹配指定值
|
static <E extends Enum<E>> |
fromString(Class<E> enumClass,
String value)
字符串转枚举,调用
Enum.valueOf(Class, String) |
static <E extends Enum<E>> |
fromString(Class<E> enumClass,
String value,
E defaultValue)
字符串转枚举,调用
Enum.valueOf(Class, String) 如果无枚举值,返回默认值 |
static <E extends Enum<E>> |
fromStringQuietly(Class<E> enumClass,
String value)
字符串转枚举,调用
Enum.valueOf(Class, String) ,转换失败返回null 而非报错 |
static <E extends Enum<E>,C> |
getBy(Class<E> enumClass,
Func1<E,C> condition,
C value)
通过 某字段对应值 获取 枚举,获取不到时为
null
LambdaUtil.getRealClass(Func1) } 是相对耗时的
如果枚举值比较多,那么getBy(Func1, Object) 方法
大部分时间都是被LambdaUtil.getRealClass(Func1) }所消耗的
如果可以在编码过程中可以提供对应的枚举类 该方法与枚举的 Enum.values() 方法是差不多的。 |
static <E extends Enum<E>,C> |
getBy(Class<E> enumClass,
Func1<E,C> condition,
C value,
E defaultEnum)
通过 某字段对应值 获取 枚举,获取不到时为
defaultEnum |
static <E extends Enum<E>> |
getBy(Class<E> enumClass,
Predicate<? super E> predicate)
通过 某字段对应值 获取 枚举,获取不到时为
null |
static <E extends Enum<E>> |
getBy(Class<E> enumClass,
Predicate<? super E> predicate,
E defaultEnum)
通过 某字段对应值 获取 枚举,获取不到时为
defaultEnum |
static <E extends Enum<E>,C> |
getBy(Func1<E,C> condition,
C value)
通过 某字段对应值 获取 枚举,获取不到时为
null |
static <E extends Enum<E>,C> |
getBy(Func1<E,C> condition,
C value,
E defaultEnum)
通过 某字段对应值 获取 枚举,获取不到时为
defaultEnum |
static <E extends Enum<E>> |
getEnumAt(Class<E> enumClass,
int index)
获取给定位置的枚举值
|
static <E extends Enum<E>> |
getEnumMap(Class<E> enumClass)
获取枚举字符串值和枚举对象的Map对应,使用LinkedHashMap保证有序
结果中键为枚举名,值为枚举对象 |
static <E extends Enum<E>,F,C> |
getFieldBy(Func1<E,F> field,
Function<E,C> condition,
C value)
通过 某字段对应值 获取 枚举中另一字段值,获取不到时为
null |
static List<String> |
getFieldNames(Class<? extends Enum<?>> clazz)
获得枚举类中所有的字段名
除用户自定义的字段名,也包括“name”字段,例如: EnumUtil.getFieldNames(Color.class) == ["name", "index"] |
static List<Object> |
getFieldValues(Class<? extends Enum<?>> clazz,
String fieldName)
获得枚举类中各枚举对象下指定字段的值
|
static Map<String,Object> |
getNameFieldMap(Class<? extends Enum<?>> clazz,
String fieldName)
获得枚举名对应指定字段值的Map
键为枚举名,值为字段值 |
static List<String> |
getNames(Class<? extends Enum<?>> clazz)
枚举类中所有枚举对象的name列表
|
static boolean |
isEnum(Class<?> clazz)
指定类是否为Enum类
|
static boolean |
isEnum(Object obj)
指定类是否为Enum类
|
static <E extends Enum<E>> |
likeValueOf(Class<E> enumClass,
Object value)
模糊匹配转换为枚举,给定一个值,匹配枚举中定义的所有字段名(包括name属性),一旦匹配到返回这个枚举对象,否则返回null
|
static <E extends Enum<E>> |
notContains(Class<E> enumClass,
String val)
判断某个值是不存在枚举中
|
static String |
toString(Enum<?> e)
Enum对象转String,调用
Enum.name() 方法 |
public static boolean isEnum(Class<?> clazz)
clazz
- 类public static boolean isEnum(Object obj)
obj
- 类public static String toString(Enum<?> e)
Enum.name()
方法e
- Enumpublic static <E extends Enum<E>> E getEnumAt(Class<E> enumClass, int index)
E
- 枚举类型泛型enumClass
- 枚举类index
- 枚举索引public static <E extends Enum<E>> E fromString(Class<E> enumClass, String value)
Enum.valueOf(Class, String)
E
- 枚举类型泛型enumClass
- 枚举类value
- 值public static <E extends Enum<E>> E fromString(Class<E> enumClass, String value, E defaultValue)
Enum.valueOf(Class, String)
E
- 枚举类型泛型enumClass
- 枚举类value
- 值defaultValue
- 无对应枚举值返回的默认值public static <E extends Enum<E>> E fromStringQuietly(Class<E> enumClass, String value)
Enum.valueOf(Class, String)
,转换失败返回null
而非报错E
- 枚举类型泛型enumClass
- 枚举类value
- 值public static <E extends Enum<E>> E likeValueOf(Class<E> enumClass, Object value)
E
- 枚举类型enumClass
- 枚举类value
- 值public static List<String> getNames(Class<? extends Enum<?>> clazz)
clazz
- 枚举类public static List<Object> getFieldValues(Class<? extends Enum<?>> clazz, String fieldName)
clazz
- 枚举类fieldName
- 字段名,最终调用getXXX方法public static List<String> getFieldNames(Class<? extends Enum<?>> clazz)
EnumUtil.getFieldNames(Color.class) == ["name", "index"]
clazz
- 枚举类public static <E extends Enum<E>> E getBy(Class<E> enumClass, Predicate<? super E> predicate)
null
E
- 枚举类型enumClass
- 枚举类predicate
- 条件null
public static <E extends Enum<E>> E getBy(Class<E> enumClass, Predicate<? super E> predicate, E defaultEnum)
defaultEnum
E
- 枚举类型enumClass
- 枚举类predicate
- 条件defaultEnum
- 获取不到时的默认枚举值defaultEnum
public static <E extends Enum<E>,C> E getBy(Class<E> enumClass, Func1<E,C> condition, C value)
null
LambdaUtil.getRealClass(Func1)
} 是相对耗时的
如果枚举值比较多,那么getBy(Func1, Object)
方法
大部分时间都是被LambdaUtil.getRealClass(Func1)
}所消耗的
如果可以在编码过程中可以提供对应的枚举类 该方法与枚举的Enum.values()
方法是差不多的。
E
- 枚举类型C
- 字段类型enumClass
- 枚举类, 为null
返回null
condition
- 条件字段,为null
返回null
value
- 条件字段值null
public static <E extends Enum<E>,C> E getBy(Class<E> enumClass, Func1<E,C> condition, C value, E defaultEnum)
defaultEnum
E
- 枚举类型C
- 字段类型enumClass
- 枚举类, 为null
返回null
condition
- 条件字段,为null
返回null
value
- 条件字段值defaultEnum
- 获取不到时的默认枚举值defaultEnum
public static <E extends Enum<E>,C> E getBy(Func1<E,C> condition, C value)
null
E
- 枚举类型C
- 字段类型condition
- 条件字段,为null
返回null
value
- 条件字段值null
public static <E extends Enum<E>,C> E getBy(Func1<E,C> condition, C value, E defaultEnum)
defaultEnum
E
- 枚举类型C
- 字段类型condition
- 条件字段value
- 条件字段值defaultEnum
- 条件找不到则返回结果使用这个null
public static <E extends Enum<E>,F,C> F getFieldBy(Func1<E,F> field, Function<E,C> condition, C value)
null
E
- 枚举类型F
- 想要获取的字段类型C
- 条件字段类型field
- 你想要获取的字段,null
返回null
condition
- 条件字段,null
返回null
value
- 条件字段值null
public static <E extends Enum<E>> LinkedHashMap<String,E> getEnumMap(Class<E> enumClass)
E
- 枚举类型enumClass
- 枚举类public static Map<String,Object> getNameFieldMap(Class<? extends Enum<?>> clazz, String fieldName)
clazz
- 枚举类fieldName
- 字段名,最终调用getXXX方法public static <E extends Enum<E>> boolean contains(Class<E> enumClass, String val)
E
- 枚举类型enumClass
- 枚举类val
- 需要查找的值public static <E extends Enum<E>> boolean notContains(Class<E> enumClass, String val)
E
- 枚举类型enumClass
- 枚举类val
- 需要查找的值public static boolean equalsIgnoreCase(Enum<?> e, String val)
e
- 枚举值val
- 需要判断的值Copyright © 2024. All rights reserved.