ludc
2023-06-15 55517e16da5e7205770bf61fc27c3d06b7d189b5
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/enumpck/BaseEnum.java
@@ -1,7 +1,55 @@
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();
   }
}