| | |
| | | package com.vci.ubcs.starter.web.enumpck; |
| | | |
| | | import com.alibaba.druid.util.StringUtils; |
| | | |
| | | public interface BaseEnum { |
| | | String getValue(); |
| | | |
| | | String getText(); |
| | | |
| | | |
| | | /** |
| | | * 使用枚举的值获取枚举对象的通用方法 |
| | | * @param clazz 枚举所属类 |
| | | * @param value 枚举的值 |
| | | * @param <T> 类型 |
| | | * @return 结果 |
| | | */ |
| | | public static <T extends BaseEnum> T getEnumByValue(Class<T> clazz,Object value){ |
| | | if(value == null){ |
| | | return null; |
| | | } |
| | | T[] enums = clazz.getEnumConstants(); |
| | | if (enums == null || enums.length == 0) { |
| | | return null; |
| | | } |
| | | |
| | | for (T e : enums) { |
| | | if (value instanceof String) { |
| | | if (StringUtils.equalsIgnoreCase((String) value, (String) ((BaseEnum) e).getValue())) { |
| | | return e; |
| | | } |
| | | } else { |
| | | if (value.equals(e.getValue())) { |
| | | return e; |
| | | } |
| | | } |
| | | } |
| | | return null; |
| | | } |
| | | |
| | | /** |
| | | * 使用枚举的值获取显示文本的方法 |
| | | * @param clazz 枚举所属的类 |
| | | * @param value 枚举的值 |
| | | * @param <T> 类型 |
| | | * @return 结果 |
| | | */ |
| | | public static <T extends BaseEnum> String getTextByValue(Class<T> clazz,String value){ |
| | | T e = getEnumByValue(clazz, value); |
| | | if (e == null) { |
| | | return ""; |
| | | } |
| | | return ((BaseEnum) e).getText(); |
| | | } |
| | | } |