Java中枚舉類型的一種使用方式
今天改同事的代碼發(fā)現(xiàn)同事的代碼中有大量的if else語句。很不美觀而且可讀性太差。
因為需要給前端一個key,value的列表。這個列表寫死。然而同事的代碼。
放幾張圖,大家自己感受。我都不知道以后這個api咋維護,新增一個工站,減少一個工站。
果然新的任務(wù)新增4個工站,好吧,開始給代碼裝扮一下。
首先,寫一個枚舉類。
package com.smartflow.common.enumpackage; /** * @author :tao * @date :Created in 2020/8/1 22:51 * @description:${description} */ public enum StationEnum { /** * */ STATION_PRODUCTION(1,"生產(chǎn)工站"), 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; } }
然后這個是獲取工站的列表,看吧你幾乎看不到重復(fù)的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; }
接著根據(jù)工站id也就是key查找工站名
/** * 根據(jù)key值查找工站名 * @param key key值 * @return 返回攻占名 */ private String getStationLabel(int key) { for (StationEnum stationEnum:StationEnum.values()) { if (stationEnum.getKey()==key) { return stationEnum.getValue(); } } return "測試工站"; }
可以看到幾行代碼就搞定了。而且代碼重用性高,可維護性好。想添加工站或者減少工站直接在枚舉類型中改變就可以了。不用修改大量的代碼。
到此這篇關(guān)于Java中枚舉類型的一種使用方式的文章就介紹到這了,更多相關(guān)Java中枚舉類型使用方式內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
SpringCloud Feign參數(shù)問題及解決方法
這篇文章主要介紹了SpringCloud Feign參數(shù)問題及解決方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2019-12-12springboot在filter中如何用threadlocal存放用戶身份信息
這篇文章主要介紹了springboot中在filter中如何用threadlocal存放用戶身份信息,本文章主要描述通過springboot的filter類,在過濾器中設(shè)置jwt信息進行身份信息保存的方法,需要的朋友可以參考下2024-07-07java中創(chuàng)建寫入文件的6種方式詳解與源碼實例
這篇文章主要介紹了java中創(chuàng)建寫入文件的6種方式詳解與源碼實例,Files.newBufferedWriter(Java 8),Files.write(Java 7 推薦),PrintWriter,File.createNewFile,FileOutputStream.write(byte[] b) 管道流,需要的朋友可以參考下2022-12-12SpringBoot、mybatis返回樹結(jié)構(gòu)的數(shù)據(jù)實現(xiàn)
本文主要介紹了SpringBoot、mybatis返回樹結(jié)構(gòu)的數(shù)據(jù)實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-04-04