首页 > 其他分享 >switch配合enum的使用

switch配合enum的使用

时间:2023-12-07 21:06:03浏览次数:22  
标签:code return name enum 配合 switch SexEnum public String

废话不多说,先上代码,拿性别举个列子。

定义一个枚举类

public enum SexEnum {
    ERROR("0", "错误的性别"),
    MAN("1", "男人"),
    WOMAN("2", "女人");

    String code;
    String name;

    //枚举被设置成单例的,是不允许new的,所以构造方法默认是private修饰的
    SexEnum(String code, String name) {
        this.code = code;
        this.name = name;
    }

    public String getCode() {
        return code;
    }

    public void setCode(String code) {
        this.code = code;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public static SexEnum getSexEnumByCode(String code){
        for(SexEnum sexEnum : SexEnum.values()){
            if(StringUtils.equals(code, sexEnum.getCode())){
                return sexEnum;
            }
        }

        return ERROR;

        /**
         * 因为我们要结合switch使用,所以这里不要return null
         * switch的对象是null时会抛出空指针异常
         * 我这里定义了ERROR这个枚举,当传入的参数不可识别时,返回ERROR枚举
         */
        //return null;
    }
}

使用方式:

public class Demo26 {
    public static void main(String[] args) {
        String sex = "1";
        switch (SexEnum.getSexEnumByCode(sex)){
            case MAN:
                System.out.println("this is a man");
                break;
            case WOMAN:
                System.out.println("this is a woman");
                break;
            default:
                System.out.println("maybe it's an alien");
                break;
        }
    }
}

如果if else分支比较多,选用switch case也是个不错的方法。 这里要注意的是switch的对象如果是null,会报空指针。枚举类中定义了ERROR枚举,是为了让getSexEnumByCode方法的入参是不能识别的编码时,不要retrun null。这样就能规避空指针的问题。

标签:code,return,name,enum,配合,switch,SexEnum,public,String
From: https://blog.51cto.com/u_16419827/8727594

相关文章

  • C语言中的struct结构体、union联合体、enum枚举和typedef
    C语言中的struct结构体、union联合体、enum枚举和typedef结构体struct结构体是C编程中另一种用户自定义的可用的数据类型,它允许存储不同类型的数据项。结构体中的数据成员可以是基本数据类型(如int、float、char等),也可以是其他结构体类型、指针类型等。关键字:structstruct......
  • JS(JavaScript)-if-switch选择结构-for-while循环
     前言:回到JS基础,用console输出; console.log(); 输入内容:window.prompt();向页面做出输入接收(类似于后端Scanner) 整数转换:parseInt();1.选择结构:①if结构if(){};  if(){}else{};  if(){}elseif{};......
  • vue 配合后端请求异步加载APP.vue
    主要是想在加载路由什么的之前先请求一些配置参数,毕竟我的情况是首页要根据不同的配置显示不同的路由组件一般加载App.vue是这么写的import{createApp}from'vue'importAppfrom'./App.vue'createApp(App).mount('#app')异步加载的话,天才我深思熟虑后是这么写的。我......
  • Day08 逻辑结构(switch和增强for)
    1.知识点if,switch,for,while等等和C++、js等相似,需要注意以下几点:1.1有关switchswitch中的casevalue:value类型可以是byte,short,int,char。value类型:string类型是JDK7才开始支持的1.2有关增强forfor(元素类型变量名:需要遍历的数组或集合){......
  • Tomcat 配合虚拟线程,一种新的编程体验
    Java21在今年早些时候的9月19日就正式发布,并开始正式引入虚拟线程,但是作为Java开发生态中老大哥Spring并没有立即跟进,而是在等待了两个月后的11月29日,伴随着SpringBoot3.2版本的发布,在这个版本中也终于是引入了对虚拟线程的支持。虚拟线程的引入标志着Java在......
  • C++中 enum 的使用
    C++中的枚举enum使用如果没有对应的范围限定,会很容易出现重定义的错误。如下的重定义错误,在一个文件中有如下两个枚举,编译时会出现重定义错误enumType{MIN_TYPE,MAX_TYPE,INPUT_TYPE};enumMode{CITY,INPUT_TYPE};此时虽然是不同的枚举类型,......
  • #define、const和enum
    enum:枚举类型(枚举变量的值只能等于枚举中定义的常量)#define:明示常量(定义真正的常量)const:限定符(名不符实,应该叫readonly),限定一个变量为只读C语言常量:1、const和#define的区别:const定义的只读变量从汇编角度来看,(使用const变量时)只是给出了对应的内存地址,而不是像#define一样......
  • 【React工作记录九】switch对按钮进行判断操作
    目录前言 导语代码部分总结前言我是歌谣我有个兄弟巅峰的时候排名c站总榜19叫前端小歌谣曾经我花了三年的时间创作了他现在我要用五年的时间超越他今天又是接近兄弟的一天人生难免坎坷大不了从头再来歌谣的意志是永恒的放弃很容易但是坚持一定很酷 导语今天同事找到我......
  • switch用法
    switch(item.key){case"self_pickup":form.self_pickup=Number(item.value);break;case"same_city":form.same_city=Number(item.value);break;c......
  • [good]enum
    typedefenum{Reg_Set_Speed=100,//100Reg_Set_Enable_VSP,//101Reg_Set_Dir,//102Reg_Force_Stop}Modbus_Holding_Registors;这是一个C语言中的`enum`(枚举)类型定义。枚举是一种用户定义的数据类型,它可以包含几个用户定义的值。在这个例子中,`M......