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)文章
springmvc—handlermapping三種映射方式
這篇文章主要介紹了springmvc—handlermapping三種映射方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-09-09
這一次搞懂Spring代理創(chuàng)建及AOP鏈式調(diào)用過程操作
這篇文章主要介紹了這一次搞懂Spring代理創(chuàng)建及AOP鏈式調(diào)用過程操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-08-08
Spring Boot MyBatis 連接數(shù)據(jù)庫配置示例
本篇文章主要介紹了Spring Boot MyBatis 連接數(shù)據(jù)庫示例的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下。2017-02-02
Java使用easypoi快速導(dǎo)入導(dǎo)出的實現(xiàn)
這篇文章主要介紹了實現(xiàn)Java使用easypoi快速導(dǎo)入導(dǎo)出的實現(xiàn),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-03-03
帶你了解Java數(shù)據(jù)結(jié)構(gòu)和算法之鏈表
這篇文章主要為大家介紹了Java數(shù)據(jù)結(jié)構(gòu)和算法之鏈表 ,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助2022-01-01

