Class OpenEnum
java.lang.Object
cloud.opencode.base.core.OpenEnum
Enum Utility Class - Validation, retrieval, mapping, filtering and conversion for enums
枚举工具类 - 枚举的验证、获取、映射、过滤和转换
Provides comprehensive enum operations with internal caching optimization.
提供全面的枚举操作,包括验证、获取、映射、过滤和转换,支持内部缓存优化。
Features | 主要功能:
- Get by name (getEnumByName, getEnumByNameSafely, getEnumByNameIgnoreCase) - 按名称获取
- Get by value (getEnumByValue with custom extractor) - 按自定义值获取
- Collection operations (getEnumList, getEnumSet, getEnumValueMap) - 集合操作
- Validation (isValidEnum, isValidEnumIgnoreCase) - 验证
- Utilities (ordinal, name, getByOrdinal) - 工具方法
Usage Examples | 使用示例:
// Get by name - 按名称获取
Status status = OpenEnum.getEnumByName(Status.class, "ACTIVE");
Status safe = OpenEnum.getEnumByNameSafely(Status.class, "UNKNOWN", Status.DEFAULT);
// Case-insensitive - 忽略大小写
Status s = OpenEnum.getEnumByNameIgnoreCase(Status.class, "active");
// Validation - 验证
boolean valid = OpenEnum.isValidEnum(Status.class, "ACTIVE");
// Get by custom value - 按自定义值获取
Status byCode = OpenEnum.getEnumByValue(Status.class, 1, Status::getCode);
Security | 安全性:
- Thread-safe: Yes (ConcurrentHashMap cache) - 线程安全: 是 (并发哈希表缓存)
- Null-safe: Yes - 空值安全: 是
- Since:
- JDK 25, opencode-base-core V1.0.0
- Author:
- Leon Soo www.LeonSoo.com
- See Also:
-
Method Summary
Modifier and TypeMethodDescriptionstatic <E extends Enum<E>>
EgetByOrdinal(Class<E> enumClass, int ordinal) Gets an enum value by its ordinal 根据 ordinal 获取枚举值static <E extends Enum<E>>
EgetEnumByName(Class<E> enumClass, String name) Gets an enum value by name 按名称获取枚举值static <E extends Enum<E>>
EgetEnumByNameIgnoreCase(Class<E> enumClass, String name) Gets an enum value by name ignoring case 忽略大小写获取枚举值getEnumByNameOptional(Class<E> enumClass, String name) Gets an Optional-wrapped enum value 获取 Optional 包装的枚举值static <E extends Enum<E>>
EgetEnumByNameSafely(Class<E> enumClass, String name, E defaultValue) Safely gets an enum value with a default 安全获取枚举值(带默认值)static <E extends Enum<E>, V>
EgetEnumByValue(Class<E> enumClass, V value, Function<E, V> valueExtractor) Gets an enum by a custom value 按自定义值获取枚举static <E extends Enum<E>, V>
EgetEnumByValue(Class<E> enumClass, V value, Function<E, V> valueExtractor, E defaultValue) Gets an enum by a custom value with a default 按自定义值获取枚举(带默认值)getEnumList(Class<E> enumClass) Gets a list of all enum values 获取所有枚举值列表getEnumNames(Class<E> enumClass) Gets a list of enum names 获取枚举名称列表getEnumSet(Class<E> enumClass) Gets an EnumSet of all enum values 获取所有枚举值集合getEnumValueMap(Class<E> enumClass, Function<E, K> keyExtractor) Creates an enum value map 创建枚举值映射static <E extends Enum<E>>
booleanisValidEnum(Class<E> enumClass, String name) Validates whether the enum name is valid 验证枚举名称是否有效static <E extends Enum<E>>
booleanisValidEnumIgnoreCase(Class<E> enumClass, String name) Validates whether the enum name is valid (case-insensitive) 验证枚举名称是否有效(忽略大小写)static StringGets the name of the enum value 获取枚举的名称static intGets the ordinal of the enum value 获取枚举的 ordinal
-
Method Details
-
getEnumByName
Gets an enum value by name 按名称获取枚举值- Type Parameters:
E- the enum type | 枚举类型- Parameters:
enumClass- the enum class | 枚举类name- the enum name | 枚举名称- Returns:
- the enum value | 枚举值
- Throws:
IllegalArgumentException- if the name is invalid | 如果名称无效
-
getEnumByNameSafely
public static <E extends Enum<E>> E getEnumByNameSafely(Class<E> enumClass, String name, E defaultValue) Safely gets an enum value with a default 安全获取枚举值(带默认值)- Type Parameters:
E- the enum type | 枚举类型- Parameters:
enumClass- the enum class | 枚举类name- the enum name | 枚举名称defaultValue- the default value | 默认值- Returns:
- the enum value or default | 枚举值或默认值
-
getEnumByNameOptional
public static <E extends Enum<E>> Optional<E> getEnumByNameOptional(Class<E> enumClass, String name) Gets an Optional-wrapped enum value 获取 Optional 包装的枚举值- Type Parameters:
E- the enum type | 枚举类型- Parameters:
enumClass- the enum class | 枚举类name- the enum name | 枚举名称- Returns:
- the Optional-wrapped enum value | Optional 包装的枚举值
-
getEnumByNameIgnoreCase
-
getEnumByValue
public static <E extends Enum<E>, V> E getEnumByValue(Class<E> enumClass, V value, Function<E, V> valueExtractor) Gets an enum by a custom value 按自定义值获取枚举- Type Parameters:
E- the enum type | 枚举类型V- the value type | 值类型- Parameters:
enumClass- the enum class | 枚举类value- the target value | 目标值valueExtractor- the value extractor | 值提取器- Returns:
- the enum value | 枚举值
-
getEnumByValue
-
getEnumList
-
getEnumSet
-
getEnumValueMap
public static <E extends Enum<E>, K> Map<K,E> getEnumValueMap(Class<E> enumClass, Function<E, K> keyExtractor) Creates an enum value map 创建枚举值映射- Type Parameters:
E- the enum type | 枚举类型K- the key type | 键类型- Parameters:
enumClass- the enum class | 枚举类keyExtractor- the key extractor | 键提取器- Returns:
- the enum map | 枚举映射
-
getEnumNames
-
isValidEnum
-
isValidEnumIgnoreCase
-
ordinal
Gets the ordinal of the enum value 获取枚举的 ordinal -
name
-
getByOrdinal
-