栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java中枚举类型的一种使用方式

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java中枚举类型的一种使用方式

今天改同事的代码发现同事的代码中有大量的if else语句。很不美观而且可读性太差。

因为需要给前端一个key,value的列表。这个列表写死。然而同事的代码。

放几张图,大家自己感受。我都不知道以后这个api咋维护,新增一个工站,减少一个工站。

果然新的任务新增4个工站,好吧,开始给代码装扮一下。

首先,写一个枚举类。

package com.smartflow.common.enumpackage;


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,或者是魔法值。对比一下上边的是不是很美观。


private List>getStationTypeList()
{

 List> stationTypeList = new ArrayList<>();

 for (StationEnum stationEnum:StationEnum.values())
 {
 Map stationType = new HashMap<>(2);
 stationType.put("key", stationEnum.getKey());
 stationType.put("label", stationEnum.getValue());
 stationTypeList.add(stationType);
 }

 return stationTypeList;
}

接着根据工站id也就是key查找工站名


private String getStationLabel(int key)
{
 for (StationEnum stationEnum:StationEnum.values())
 {
 if (stationEnum.getKey()==key)
 {
  return stationEnum.getValue();
 }
 }
 return "测试工站";
}

可以看到几行代码就搞定了。而且代码重用性高,可维护性好。想添加工站或者减少工站直接在枚举类型中改变就可以了。不用修改大量的代码。

到此这篇关于Java中枚举类型的一种使用方式的文章就介绍到这了,更多相关Java中枚举类型使用方式内容请搜索考高分网以前的文章或继续浏览下面的相关文章希望大家以后多多支持考高分网!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/132822.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号