SpringBoot: si el valor del atributo de clase de enumeración contiene juicio

Sigue a wx:CodingTechWork

necesidad

  En algunas verificaciones, es necesario juzgar si un valor está incluido en el valor del atributo de enumeración.El valor del atributo de enumeración incluye la función de juicio como se resume a continuación.

plantilla

@Slf4j
public class EnumOperateUtil {
    
    
    /**
     * 校验枚举,是否包含在枚举属性值中
     *
     * @param enumClass  枚举class
     * @param methodName 属性值调用方法名称
     * @param value      目标属性值
     * @return
     */
    public static boolean validInclude(Class enumClass, String methodName, String value) {
    
    
        //获取枚举list
        List enumList = EnumUtils.getEnumList(enumClass);
        //循环处理
        for (int i = 0; i < enumList.size(); i++) {
    
    
            //获取枚举
            Object en = enumList.get(i);
            //获取枚举的class
            Class<?> eClass = en.getClass();
            try {
    
    
                //反射获取方法
                Method method = eClass.getMethod(methodName);
                //调用枚举方法
                Object invokeRes = method.invoke(en, null);
                //获取方法调用结果,即属性值,判断
                if (invokeRes.toString().equals(value)) {
    
    
                    //相同返回true
                    return true;
                }
            } catch (Exception e) {
    
    
                //异常处理
                log.error("枚举{}方法执行失败!{}", methodName, e.getMessage());
            }
        }
        //不同或异常则返回false
        return false;
    }
}

ejemplo

enumerar

public enum DemoEnum {
    
    
    RED("1", "红色"),
    GREEN("2", "绿色"),
    YELLOW("3", "黄色");
    /**
     * 编码
     */
    private String code;
    /**
     * 名称
     */
    private String name;
    DemoEnum(String name, String code) {
    
    
        this.name = name;
        this.code = code;
    }

    /**
     * getName
     *
     * @return
     */
    public String getName() {
    
    
        return name;
    }

    /**
     * getCode
     *
     * @return
     */
    public String getCode() {
    
    
        return code;
    }

}

usar

String colourCode = "2";
Boolean includeOperateType = EnumOperateUtil.validInclude(DemoEnum.class, "getCode", colourCode);

Supongo que te gusta

Origin blog.csdn.net/Andya_net/article/details/129936883
Recomendado
Clasificación