枚举工具类,生产上Enum的常用方法

简介

        平时经常用到Enum枚举类,通过枚举类可以直接引用常量,并且枚举类中可以自定义许多方法,使用简洁灵活多变。鉴于枚举类的常用方法大同小异,所以小编整理一个工具类,省去每次手写的烦恼,以后就可以粘贴复制啦...


正文

        Java 中的每一个枚举都继承自 java.lang.Enum 类。当定义一个枚举类型时,每一个枚举类型成员都可以看作是 Enum 类的实例,这些枚举成员默认都被 final、public, static 修饰,当使用枚举类型成员时,直接使用枚举名称调用成员即可。

1. 所有枚举实例都可以调用 Enum 类的方法

方法名称 描述
values() 以数组形式返回枚举类型的所有成员
valueOf() 将普通字符串转换为枚举实例
compareTo() 比较两个枚举成员在定义时的顺序
ordinal() 获取枚举成员的索引位置

2. 常用的方法

/**
 * 贷款办理-业务类型:
 * @Created by tjm on 2023/6/6 9:56
 * @Version 1.0.0
 */
public enum LoanTypeEnum {
    AGR_LOAN("1", "农贷通"),
    BUS_LOAN("2", "商贷通"),
    POL_LOAN("3", "政贷通"),
    NET_LOAN("4", "网贷通"),
    PER_LOAN("5", "个人经营贷款"),
    OTHER_LOAN("0", "其他小额贷款");

    public String code;
    public String value;

    public String getCode() {
        return this.code;
    }

    public String getValue() {
        return this.value;
    }

    LoanTypeEnum() {}

    LoanTypeEnum(String code, String value) {
        this.code = code;
        this.value = value;
    }

    /**
     * 打印元素属性
     */
    public static String printString(LoanTypeEnum codeEnum) {
        return codeEnum.code + "_" + codeEnum.value;  
    }

    /**
     * 判断code是否存在
     */
    public static boolean isExist(String code) {
        return parse(code) != null;
    }

    /**
     * 根据code获取枚举
     */
    public static LoanTypeEnum parse(String code) {
        for (LoanTypeEnum codeEnum : LoanTypeEnum .values()) {
            if (codeEnum.getCode().equals(code)) {
                return codeEnum;
            }
        }
        return null;
    }

    /**
     * 根据code获取name
     */
    public static String getEnumValue(String code) {
        LoanTypeEnum codeEnum = parse(code);
        if (codeEnum == null) {
            return "";
        } else {
            return codeEnum.getValue();
        }
    }

    /**
     * 获取枚举类Map
     */
    public static LinkedHashMap<String, String> getEnumMap() {
        LinkedHashMap<String, String> linkedMap = new LinkedHashMap<>();
        for (LoanTypeEnum codeEnum : LoanTypeEnum .values()) {
            linkedMap.put(codeEnum.getCode(), codeEnum.getValue());
        }
        return linkedMap;
    }

    /**
     * 获取枚举类List
     */
    public static List<Map<String, Object>> getEnumList() {
        List<Map<String, Object>> retList = new ArrayList<>();
        for (LoanTypeEnum codeEnum : LoanTypeEnum .values()) {
            Map<String, Object> tempMap = new HashMap<>();
            tempMap.put("code", codeEnum.getCode());
            tempMap.put("value", codeEnum.getValue());
            retList.add(tempMap);
        }
        return retList;
    }
}

猜你喜欢

转载自blog.csdn.net/weixin_44259720/article/details/131130643