栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java使用枚举实现根据一个值查到另外一个(多个)值

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java使用枚举实现根据一个值查到另外一个(多个)值

java使用枚举实现根据一个值查到另外一个(多个)值

在工作应用中,我想经常会用到枚举去表示一组常量,然后往往一个枚举类中会有多个属性,或是属性1的附加属性或是属性1的解释等等…很多业务场景中会用到根据属性1我想知道属性2的值是多少,比如在某个枚举中1是代表星期一 2是代表星期二… 那我想通过1查出“星期一”呢?(其实相当于一个map)看下我常用到的两种方法吧(方法二更好)

方法一:

@Getter
public enum MyExceptionEnum {

    MY_EXCEPTION_01("2002","system inner exception");


    private String code;
    private String msg;

    MyExceptionEnum(String code, String msg) {
        this.code = code;
        this.msg = msg;
    }

    public static String getMsg(String code) {
        for (MyExceptionEnum value : MyExceptionEnum.values()) {
            if (value.code.equals(code)) {
                return value.msg;
            }
        }
        return null;
    }


}
String msg = MyExceptionEnum.getMsg("2002");

方法二:

@Getter
public enum MyExceptionEnum {

    MY_EXCEPTION_01("2002","system inner exception");


    private String code;
    private String msg;

    private static HashMap map;

    MyExceptionEnum(String code, String msg) {
        this.code = code;
        this.msg = msg;
    }

    static {
        HashMap hashMap = new HashMap<>(MyExceptionEnum.values().length);
        for (MyExceptionEnum value : MyExceptionEnum.values()) {
            hashMap.put(value.getCode(), value);
        }
        map = hashMap;
    }

    public static MyExceptionEnum getEnum(String code) {
        return map.get(code);
    }

}
MyExceptionEnum anEnum = MyExceptionEnum.getEnum("2002");
System.out.println(anEnum.getMsg());
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1036801.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号