JAVA Enum工具类
import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import java.lang.reflect.Method; import java.util.HashMap; import java.util.Map; @Slf4j public class EnumUtils { public static <T extends Enum> String getValueByCode(Class<T> enumType, String code) { if(enumType.isEnum() && StringUtils.isNotEmpty(code)){ try { Method getCodeMethod = enumType.getMethod("getCode"); Method getValueMethod = enumType.getMethod("getValue"); T[] enumList = enumType.getEnumConstants(); for(T item:enumList){ if(code.equals(String.valueOf(getCodeMethod.invoke(item)))){ return String.valueOf(getValueMethod.invoke(item)); } } } catch (Exception e) { log.error(e.getMessage(),e); } } return null; } public static <T extends Enum> T getEnumByCode(Class<T> enumType, String code) { if(enumType.isEnum() && StringUtils.isNotEmpty(code)){ try { Method getCodeMethod = enumType.getMethod("getCode"); T[] enumList = enumType.getEnumConstants(); for(T item:enumList){ if(code.equals(String.valueOf(getCodeMethod.invoke(item)))){ return item; } } } catch (Exception e) { log.error(e.getMessage(),e); } } return null; } public static <T extends Enum> Map<String, String> getValueMap(Class<T> enumType) throws Exception { if(enumType.isEnum()){ Method getCodeMethod = enumType.getMethod("getCode"); Method getValueMethod = enumType.getMethod("getValue"); T[] enumList = enumType.getEnumConstants(); Map<String, String> valueMap = new HashMap<>(); for(T item:enumList){ valueMap.put(String.valueOf(getCodeMethod.invoke(item)) , String.valueOf(getValueMethod.invoke(item))); } return valueMap; } return null; } public static <T extends Enum> Map<String, T> getEnumMap(Class<T> enumType) throws Exception { if(enumType.isEnum()){ Method getCodeMethod = enumType.getMethod("getCode"); T[] enumList = enumType.getEnumConstants(); Map<String, T> enumMap = new HashMap<>(); for(T item:enumList){ String code = String.valueOf(getCodeMethod.invoke(item)); enumMap.put(code, getEnumByCode(enumType,code)); } return enumMap; } return null; } public static <T extends Enum> String getAliasByCode(Class<T> enumType, String code) { if(enumType.isEnum() && StringUtils.isNotEmpty(code)){ try { Method getCodeMethod = enumType.getMethod("getCode"); Method getAliasMethod = enumType.getMethod("getAlias"); T[] enumList = enumType.getEnumConstants(); for(T item:enumList){ if(code.equals(String.valueOf(getCodeMethod.invoke(item)))){ return String.valueOf(getAliasMethod.invoke(item)); } } } catch (Exception e) { log.error(e.getMessage(),e); } } return null; } public static <T extends Enum> String getCodeByValue(Class<T> enumType, String value) { if(enumType.isEnum() && StringUtils.isNotEmpty(value)){ try { Method getCodeMethod = enumType.getMethod("getCode"); Method getValueMethod = enumType.getMethod("getValue"); T[] enumList = enumType.getEnumConstants(); for(T item:enumList){ if(value.equals(String.valueOf(getValueMethod.invoke(item)))){ return getCodeMethod.invoke(item).toString(); } } } catch (Exception e) { log.error(e.getMessage(),e); } } return null; } public static <T extends Enum> String getOrderNumByCode(Class<T> enumType, String code) { if(enumType.isEnum() && StringUtils.isNotEmpty(code)){ try { Method getCodeMethod = enumType.getMethod("getCode"); Method getAliasMethod = enumType.getMethod("getOrderNum"); T[] enumList = enumType.getEnumConstants(); for(T item:enumList){ if(code.equals(String.valueOf(getCodeMethod.invoke(item)))){ return String.valueOf(getAliasMethod.invoke(item)); } } } catch (Exception e) { log.error(e.getMessage(),e); } } return null; } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)