Package org.miaixz.bus.core.xyz
Class EnumKit
java.lang.Object
org.miaixz.bus.core.xyz.EnumKit
枚举工具类
- Since:
- Java 17+
- Author:
- Kimi Liu
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic <E extends Enum<E>>
boolean判断指定名称的枚举是否存在static boolean检查某个枚举值是否匹配指定值static booleanequalsIgnoreCase(Enum<?> e, String val) 忽略大小检查某个枚举值是否匹配指定值static <E extends Enum<E>>
EfromString(Class<E> enumClass, String value) 字符串转枚举,调用Enum.valueOf(Class, String)static <E extends Enum<E>>
EfromString(Class<E> enumClass, String value, E defaultValue) 字符串转枚举,调用Enum.valueOf(Class, String)如果无枚举值,返回默认值static <E extends Enum<E>>
EfromStringQuietly(Class<E> enumClass, String value) 字符串转枚举,调用Enum.valueOf(Class, String),转换失败返回null而非报错static <E extends Enum<E>>
E通过 某字段对应值 获取 枚举,获取不到时为nullstatic <E extends Enum<E>,C>
E通过 某字段对应值 获取 枚举,获取不到时为nullstatic <E extends Enum<E>,C>
E通过 某字段对应值 获取 枚举,获取不到时为defaultEnumstatic <E extends Enum<E>>
E获取给定位置的枚举值static <E extends Enum<E>>
LinkedHashMap<String, E> getEnumMap(Class<E> enumClass) 获取枚举字符串值和枚举对象的Map对应,使用LinkedHashMap保证有序 结果中键为枚举名,值为枚举对象static <E extends Enum<E>,F, C>
FgetFieldBy(FunctionX<E, F> field, Function<E, C> condition, C value) 通过 某字段对应值 获取 枚举中另一字段值,获取不到时为nullgetFieldNames(Class<? extends Enum<?>> clazz) 获得枚举类中所有的字段名 除用户自定义的字段名,也包括“name”字段,例如:getFieldValues(Class<? extends Enum<?>> clazz, String fieldName) 获得枚举类中各枚举对象下指定字段的值getNameFieldMap(Class<? extends Enum<?>> clazz, String fieldName) 获得枚举名对应指定字段值的Map 键为枚举名,值为字段值枚举类中所有枚举对象的name列表static boolean指定类是否为Enum类static boolean指定类是否为Enum类static <E extends Enum<E>>
ElikeValueOf(Class<E> enumClass, Object value) 模糊匹配转换为枚举,给定一个值,匹配枚举中定义的所有字段名(包括name属性),一旦匹配到返回这个枚举对象,否则返回nullstatic <E extends Enum<E>>
booleannotContains(Class<E> enumClass, String val) 判断某个值是不存在枚举中static StringEnum对象转String,调用Enum.name()方法
-
Constructor Details
-
EnumKit
public EnumKit()
-
-
Method Details
-
isEnum
指定类是否为Enum类- Parameters:
clazz- 类- Returns:
- 是否为Enum类
-
isEnum
指定类是否为Enum类- Parameters:
obj- 类- Returns:
- 是否为Enum类
-
toString
Enum对象转String,调用Enum.name()方法- Parameters:
e- Enum- Returns:
- name值
-
getEnumAt
获取给定位置的枚举值- Type Parameters:
E- 枚举类型泛型- Parameters:
enumClass- 枚举类index- 枚举索引- Returns:
- 枚举值,null表示无此对应枚举
-
fromString
字符串转枚举,调用Enum.valueOf(Class, String)- Type Parameters:
E- 枚举类型泛型- Parameters:
enumClass- 枚举类value- 值- Returns:
- 枚举值
-
fromString
字符串转枚举,调用Enum.valueOf(Class, String)如果无枚举值,返回默认值- Type Parameters:
E- 枚举类型泛型- Parameters:
enumClass- 枚举类value- 值defaultValue- 无对应枚举值返回的默认值- Returns:
- 枚举值
-
fromStringQuietly
字符串转枚举,调用Enum.valueOf(Class, String),转换失败返回null而非报错- Type Parameters:
E- 枚举类型泛型- Parameters:
enumClass- 枚举类value- 值- Returns:
- 枚举值
-
likeValueOf
模糊匹配转换为枚举,给定一个值,匹配枚举中定义的所有字段名(包括name属性),一旦匹配到返回这个枚举对象,否则返回null- Type Parameters:
E- 枚举类型- Parameters:
enumClass- 枚举类value- 值- Returns:
- 匹配到的枚举对象,未匹配到返回null
-
getNames
枚举类中所有枚举对象的name列表- Parameters:
clazz- 枚举类- Returns:
- name列表
-
getFieldValues
获得枚举类中各枚举对象下指定字段的值- Parameters:
clazz- 枚举类fieldName- 字段名,最终调用getXXX方法- Returns:
- 字段值列表
-
getFieldNames
获得枚举类中所有的字段名 除用户自定义的字段名,也包括“name”字段,例如:EnumKit.getFieldNames(Ansi4BitColor.class) == ["name", "index"]
- Parameters:
clazz- 枚举类- Returns:
- 字段名列表
-
getBy
通过 某字段对应值 获取 枚举,获取不到时为null- Type Parameters:
E- 枚举类型- Parameters:
enumClass- 枚举类predicate- 条件- Returns:
- 对应枚举 ,获取不到时为
null
-
getBy
通过 某字段对应值 获取 枚举,获取不到时为null- Type Parameters:
E- 枚举类型C- 字段类型- Parameters:
condition- 条件字段value- 条件字段值- Returns:
- 对应枚举 ,获取不到时为
null
-
getBy
通过 某字段对应值 获取 枚举,获取不到时为defaultEnum- Type Parameters:
E- 枚举类型C- 值类型- Parameters:
condition- 条件字段value- 条件字段值defaultEnum- 条件找不到则返回结果使用这个- Returns:
- 对应枚举 ,获取不到时为
null
-
getFieldBy
public static <E extends Enum<E>,F, F getFieldByC> (FunctionX<E, F> field, Function<E, C> condition, C value) 通过 某字段对应值 获取 枚举中另一字段值,获取不到时为null- Type Parameters:
E- 枚举类型F- 想要获取的字段类型C- 条件字段类型- Parameters:
field- 你想要获取的字段condition- 条件字段value- 条件字段值- Returns:
- 对应枚举中另一字段值 ,获取不到时为
null
-
getEnumMap
获取枚举字符串值和枚举对象的Map对应,使用LinkedHashMap保证有序 结果中键为枚举名,值为枚举对象- Type Parameters:
E- 枚举类型- Parameters:
enumClass- 枚举类- Returns:
- 枚举字符串值和枚举对象的Map对应,使用LinkedHashMap保证有序
-
getNameFieldMap
获得枚举名对应指定字段值的Map 键为枚举名,值为字段值- Parameters:
clazz- 枚举类fieldName- 字段名,最终调用getXXX方法- Returns:
- 枚举名对应指定字段值的Map
-
contains
判断指定名称的枚举是否存在- Type Parameters:
E- 枚举类型- Parameters:
enumClass- 枚举类name- 需要查找的枚举名- Returns:
- 是否存在
-
notContains
判断某个值是不存在枚举中- Type Parameters:
E- 枚举类型- Parameters:
enumClass- 枚举类val- 需要查找的值- Returns:
- 是否不存在
-
equalsIgnoreCase
忽略大小检查某个枚举值是否匹配指定值- Parameters:
e- 枚举值val- 需要判断的值- Returns:
- 是非匹配
-
equals
检查某个枚举值是否匹配指定值- Parameters:
e- 枚举值val- 需要判断的值- Returns:
- 是非匹配
-