第一种方式实现 /** * 交通方式枚举类 * * @author LiuW */ @Getter @AllArgsConstructor public enum TrafficEnum { A(1, "高铁"), B(2, "轮船"), C(3, "飞机"), D(4, "客车"), E(5, "火车"), F(6, "出租车"), ; final int key; final String value; //获取根据key获取value public static String getValue(String key) { for (TrafficEnum ele : values()) { if (key.equals(String.valueOf(ele.getKey()))) { return ele.getValue(); } } return null; } //获取所有key,value public static List<Map<String, Object>> toList() { List<Map<String, Object>> list = new ArrayList<>(); for (TrafficEnum item : values()) { Map<String, Object> map = new HashMap(); map.put("key", item.getKey()); map.put("value", item.getValue()); list.add(map); } return list; } }
在使用的时候直接调用TrafficEnum.getValue(key)/TrafficEnum.toList() 方法即可
第二种方法实现
@Getter @AllArgsConstructor public enum UserEnum { /** * web */ WEB("web", 1), /** * app */ APP("app", 2), /** * other */ OTHER("other", 3), ; final String name; final int category; } 业务代码 userEnum.WEB.getName() 能获取到 web("web",1) 括号内的web值,
userEnum.WEB.getCategory()能获取到 web("web",1) 括号内的1值,