首页 > 编程语言 >Java中枚举配合switch语句用法-2022新项目

Java中枚举配合switch语句用法-2022新项目

时间:2022-08-23 10:46:25浏览次数:64  
标签:GenderEnum code Java String GENDER 枚举 switch 2022 public

一、业务场景

  项目开发中经常会遇到多条件判断的情况,如果判断条件少的话使用if/elseif/else还比较好处理,如果判断条件多的话,则在使用这种语句就不太合适。

如果是自定义的一些内容,比如不同的状态等等,就可以考虑使用枚举值。枚举值一般都有固定的值,不会随意改变,使用起来很方便。

二、需求分析

   以前在开发中,switch语句中大多都是使用string字符串作为比对条件,没有见到在switch语句和枚举值同时使用的情况,直到开发这个新项目,才学

会了这种新的用法。这种方式感觉很实用,在项目开发中,有需要时可以经常性的使用,写出来的代码也会更加容易理解。

三、解决方案

   首先就是创建一个枚举类,这个枚举类会使用到谷歌开发的一个java集合类的工具包,maven坐标如下:

<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>30.0-jre</version>
</dependency>

简单定一个性别枚举类如下:
import com.google.common.collect.Maps;

import java.util.Arrays;
import java.util.Map;

/**
* @Description: 性别枚举
* @ClassName: GenderMenu
* @author: dengchao
* @date: 2022/8/23 9:46
*/
public enum GenderEnum {
GENDER_MAN("MAN", "男性"),
GENDER_WOMEN("GENDER_WOMEN", "女性"),
GENDER_OTHER("OTHER", "其他")
;

/*
* 描述信息
*/
private String message;

/*
* 代码
*/
private String code;

public String code() {
return this.code;
};

public String message() {
return this.code;
};

/*
* 枚举类的定义方式
*/
GenderEnum(String code, String message){
this.code = code;
this.message = message;
}

public static GenderEnum getEnumValue(String value) {
return MAPS.get(value);
}

private static final Map<String, GenderEnum> MAPS =
Maps.uniqueIndex(Arrays.asList(GenderEnum.values()), GenderEnum::code);
}

测试代码如下:

/**
* @Author 一只爱阅读的程序员
* @Description 测试类
* @Date 2022/8/23 10:05
* @Version 1.0
*/
public class EnumTest {
public static void main(String[] args) {
// 性别参数
String genderParam = GenderEnum.GENDER_WOMEN.code();
GenderEnum genderEnum = GenderEnum.getEnumValue(genderParam);
        if (genderEnum == null) {
throw new RuntimeException("枚举值错误!");
}

switch (genderEnum) {
case GENDER_MAN:
System.out.println("男性类别做一些事情");
// TODO
break;
case GENDER_WOMEN:
System.out.println("女性类别做一些事情");
// TODO
break;
case GENDER_OTHER:
System.out.println("其他类别做一些事情");
// TODO
break;
default:
break;
}
}
}

测试结果如下

 

使用这种方式很好的将枚举类和switch语句结合起来使用,在开发中非常地实用,以后的开发中都可以使用起来。有其他好的建议的朋友,欢迎留言讨论。

 

标签:GenderEnum,code,Java,String,GENDER,枚举,switch,2022,public
From: https://www.cnblogs.com/yilangcode/p/16614994.html

相关文章

  • 【ACM】2022.08.21训练赛
    A.连续整数的和【数论】题目描述给出一个正整数N,将N写为若干个连续数字和的形式(长度>=2)。例如N=15,可以写为1+2+3+4+5,也可以写为4+5+6,或7+8。如果......
  • java中的注解和反射
    1什么是注解(1)定义:Annotation是从Jdk5.0开始后才引入的,不是程序本身,可以对程序作出解释。可以被其他程序读取(2)注解的使用:可以在package,class,method,field上面使用,......
  • Javascript日期、城市选择器(demo)
    1<htmlxmlns="http://www.w3.org/1999/xhtml">2<head>3<title>精美js日期选择器,js省市选择器-何问起</title>4<linktype="text/css"rel="Stylesheet"hre......
  • java线程的学习
    1什么是线程进程是程序执行的一次过程,它是一个动态的概念,是系统资源分配的单位,通常一个进程中可以包含若干个线程,线程就是独立执行的路径。线程的执行存在优先权问题......
  • [排错记录]20220823_终端用户反应网速慢
    ​ 暑假期间,部分终端用户反映网速非常慢,打开网页很卡,测速非常的缓慢。本人接到任务去现场查看,进行错误排查。总结如下一、现状分析1.1简要拓扑结构:1.2现状描述1)初......
  • 【杂题乱写】杂题2022
    杂题2022题单洛谷-P2865[USACO06NOV]RoadblocksG求无向图中\(1\ton\)的严格次短路,有重边,一条边可以多次走。首先一遍\(\text{Dijkstra}\)跑出来这个最短路,考虑......
  • oracle java 安装
    1.8版本之后只需要添加以下:1.配置JDK环境目录:变量名:JAVA_HOME  值:D:\java\jdk182.添加一个PATH变量变量名: PATH   值:%JAVA_HOME%\bin1.8版本之前除以上外,需......
  • Java多线程
    1.实现多线程1.1进程和线程【理解】进程:是正在运行的程序​ 是系统进行资源分配和调用的独立单位​ 每一个进程都有它自己的内存空间和系统资源线程:是进程中的单......
  • Java-网络编程
    1.网络编程入门1.1网络编程概述【理解】计算机网络是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网......
  • 筛选类型数据和创建日期大于2022年1月1日
    #筛选类型数据和创建日期大于2022年1月1日,根据shaixuanleixingandbiaoti.py修改classShaiXuanLeiXingAndBiaoTi:def__init__(self,file_name):self.file......