mirror of
				https://github.com/continew-org/continew-starter.git
				synced 2025-10-31 22:57:19 +08:00 
			
		
		
		
	feat(core): BaseEnum 新增 getByValue、getByDescription、isValidValue 方法
This commit is contained in:
		| @@ -17,6 +17,7 @@ | ||||
| package top.continew.starter.core.enums; | ||||
|  | ||||
| import java.io.Serializable; | ||||
| import java.util.Objects; | ||||
|  | ||||
| /** | ||||
|  * 枚举接口 | ||||
| @@ -49,4 +50,50 @@ public interface BaseEnum<T extends Serializable> { | ||||
|     default String getColor() { | ||||
|         return null; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * 根据枚举值获取 | ||||
|      * | ||||
|      * @param value 枚举值 | ||||
|      * @param clazz 枚举类 | ||||
|      * @return 枚举对象 | ||||
|      * @since 2.8.1 | ||||
|      */ | ||||
|     static <E extends Enum<E> & BaseEnum, T> E getByValue(T value, Class<E> clazz) { | ||||
|         for (E e : clazz.getEnumConstants()) { | ||||
|             if (Objects.equals(e.getValue(), value)) { | ||||
|                 return e; | ||||
|             } | ||||
|         } | ||||
|         return null; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * 根据枚举描述获取 | ||||
|      * | ||||
|      * @param description 枚举描述 | ||||
|      * @param clazz       枚举类 | ||||
|      * @return 枚举对象 | ||||
|      * @since 2.8.1 | ||||
|      */ | ||||
|     static <E extends Enum<E> & BaseEnum> E getByDescription(String description, Class<?> clazz) { | ||||
|         for (Object e : clazz.getEnumConstants()) { | ||||
|             if (e instanceof BaseEnum<?> baseEnum && Objects.equals(baseEnum.getDescription(), description)) { | ||||
|                 return (E)baseEnum; | ||||
|             } | ||||
|         } | ||||
|         return null; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * 判断枚举值是否有效 | ||||
|      * | ||||
|      * @param value 枚举值 | ||||
|      * @param clazz 枚举类 | ||||
|      * @return 是否有效 | ||||
|      * @since 2.8.1 | ||||
|      */ | ||||
|     static <E extends Enum<E> & BaseEnum, T> boolean isValidValue(T value, Class<E> clazz) { | ||||
|         return getByValue(value, clazz) != null; | ||||
|     } | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user