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

 更新时间:2020年08月03日 14:46:48   作者:qq_25014509  
这篇文章主要介绍了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 "测试工站";
}

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

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

相关文章

  • SpringCloud Feign参数问题及解决方法

    SpringCloud Feign参数问题及解决方法

    这篇文章主要介绍了SpringCloud Feign参数问题及解决方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-12-12
  • SpringMVC在多线程下请求头获取失败问题的解决方案

    SpringMVC在多线程下请求头获取失败问题的解决方案

    这篇文章主要介绍了我们就对多线程环境下使用SpringMVC中RequestContextHolder无法获取请求的问题进行了深入的分析,并针对相关问题给出了相应的解决方案,需要的朋友可以参考下
    2024-08-08
  • Java反射 Field类的使用全方位解析

    Java反射 Field类的使用全方位解析

    这篇文章主要介绍了Java反射 Field类的使用全方位解析,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-04-04
  • springboot在filter中如何用threadlocal存放用户身份信息

    springboot在filter中如何用threadlocal存放用户身份信息

    这篇文章主要介绍了springboot中在filter中如何用threadlocal存放用户身份信息,本文章主要描述通过springboot的filter类,在过滤器中设置jwt信息进行身份信息保存的方法,需要的朋友可以参考下
    2024-07-07
  • SpringBoot嵌入式Web容器原理与使用介绍

    SpringBoot嵌入式Web容器原理与使用介绍

    Web开发的核心内容主要包括内嵌的Servlet容器和SpringMVCSpringBoot使用起来非常简洁,大部分配置都有SpringBoot自动装配,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习吧
    2022-10-10
  • 一文带你掌握Java中Scanner类的使用

    一文带你掌握Java中Scanner类的使用

    Scanner类是java.util包中的一个类,常用于控制台的输入,当需要使用控制台输入时即可调用这个类。本文将通过一些简单的例子为大家介绍一下Java中Scanner类的使用,需要的可以参考一下
    2023-04-04
  • java中创建写入文件的6种方式详解与源码实例

    java中创建写入文件的6种方式详解与源码实例

    这篇文章主要介绍了java中创建写入文件的6种方式详解与源码实例,Files.newBufferedWriter(Java 8),Files.write(Java 7 推荐),PrintWriter,File.createNewFile,FileOutputStream.write(byte[] b) 管道流,需要的朋友可以参考下
    2022-12-12
  • SpringBoot、mybatis返回树结构的数据实现

    SpringBoot、mybatis返回树结构的数据实现

    本文主要介绍了SpringBoot、mybatis返回树结构的数据实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-04-04
  • Java实现简易HashMap功能详解

    Java实现简易HashMap功能详解

    这篇文章主要介绍了Java实现简易HashMap功能,结合实例形式详细分析了Java实现HashMap功能相关原理、操作步骤与注意事项,需要的朋友可以参考下
    2020-05-05
  • 详解Java面向对象编程中方法的使用

    详解Java面向对象编程中方法的使用

    这篇文章主要介绍了详解Java面向对象编程中方法的使用,包括方法的重载和参数以及泛型方法等知识点,需要的朋友可以参考下
    2016-02-02

最新评论