Flask接口签名sign原理与实例代码浅析
325
2022-11-28
Java中枚举类型的一种使用方式
今天改同事的代码发现同事的代码中有大量的if else语句。很不美观而且可读性太差。
因为需要给前端一个key,value的列表。这个列表写死。然而同事的代码。
放几张图,大家自己感受。我都不知道以后这个api咋维护,新增一个工站,减少一个工站。
果然新的任务新增4个工站,好吧,开始给代码装扮一下。
首先,写一个枚举类。
package com.smartflow.common.enumpackage;
/**
* @http://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
{
List
for (StationEnum stationEnum:StationEnum.values())
{
Map
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 khttp://ey)
{
for (StationEnum stationEnum:StationEnum.values())
{
if (stationEnum.getKey()==key)
{
return stationEnum.getValue();
}
}
return "测试工站";
}
可以看到几行代码就搞定了。而且代码重用性高,可维护性好。想添加工站或者减少工站直接在枚举类型中改变就可以了。不用修改大量的代码。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~