Java中枚举类型 Java中枚举类型的一种使用方式
qq_25014509 人气:0想了解Java中枚举类型的一种使用方式的相关内容吗,qq_25014509在本文为您仔细讲解Java中枚举类型的相关知识和一些Code实例,欢迎阅读和指正,我们先划重点:java枚举类用法,Java,枚举类型,下面大家一起来学习吧。
今天改同事的代码发现同事的代码中有大量的if else语句。很不美观而且可读性太差。
因为需要给前端一个key,value的列表。这个列表写死。然而同事的代码。
放几张图,大家自己感受。我都不知道以后这个api咋维护,新增一个工站,减少一个工站。
果然新的任务新增4个工站,好吧,开始给代码装扮一下。
首先,写一个枚举类。
package com.smartflow.common.enumpackage; /** * @author :tao * @date :Created in 2020/8/1 22:51 * @description:${description} */ public enum StationEnum { /** * */ STATION_PRODUCTION(1,"生产工站"), STATION_TEST(2,"测试工站"), STATION_FIX(3,"维修工站"), STATION_VIRTUAL(4,"虚拟工站"), STATION_MATERIAL(5,"上料工站"), STATION_CRASH(6,"清洗工站"), STATION_PAK(7,"配送工站"); private final int key; private final String value; StationEnum(int key, String value) { this.key = key; this.value = value; } public int getKey() { return key; } public String getValue() { return value; } }
然后这个是获取工站的列表,看吧你几乎看不到重复的new map,或者是魔法值。对比一下上边的是不是很美观。
/** *获取工站类型列表 * @return 工站类型列表 */ private List<Map<String,Object>>getStationTypeList() { List<Map<String, Object>> stationTypeList = new ArrayList<>(); for (StationEnum stationEnum:StationEnum.values()) { Map<String, Object> stationType = new HashMap<>(2); stationType.put("key", stationEnum.getKey()); stationType.put("label", stationEnum.getValue()); stationTypeList.add(stationType); } return stationTypeList; }
接着根据工站id也就是key查找工站名
/** * 根据key值查找工站名 * @param key key值 * @return 返回攻占名 */ private String getStationLabel(int key) { for (StationEnum stationEnum:StationEnum.values()) { if (stationEnum.getKey()==key) { return stationEnum.getValue(); } } return "测试工站"; }
可以看到几行代码就搞定了。而且代码重用性高,可维护性好。想添加工站或者减少工站直接在枚举类型中改变就可以了。不用修改大量的代码。
加载全部内容