Java 反射

58 阅读1分钟

checkEnumValue(ColumnRuleEnum.class, ruleTypeStr, "RuleType")



/**
 * 校验枚举中是否存在指定的类型
 *
 * @param enumClass
 * @param value
 * @param method1
 * @return
 */
private boolean checkEnumValue(Class enumClass, String ruleTypeStr, String method) {
    List enumList = EnumUtils.getEnumList(enumClass);
    for (int i = 0; i < enumList.size(); i++) {
        Object en = enumList.get(i);
        Class<?> enclass = en.getClass();
        try {
            Method method = enclass.getMethod("get" + method);
            Object invoke = method.invoke(en, null);
            if (invoke != null && invoke.toString().equals(value)) {
                return true;
            }
        } catch (Exception ex) {
            ex.printStackTrace();
        }
    }

    return false;
}



public enum ColumnRuleEnum {
    SUM("SUM", "SUM");
    private String ruleType;
    private String ruleName;

    ColumnRuleEnum(String ruleType, String ruleName) {
        this.ruleType = ruleType;
        this.ruleName = ruleName;
    }

    public String getRuleType() {
        return ruleType;
    }

    public String getRuleName() {
        return ruleName;
    }

}