开发过程中为了代码的可阅读性和可维护性,很多类型字段往往会习惯使用枚举去定义,可是在一些判断里面想用switch去代替if else 就会出现以下问题

public enum SexType {MAN(1, "男"),GIRL(2, "女"),;private int type;private String work;SexType(int type, String work) {this.type = type;this.work = work;}public int getType() {return type;}public void setType(int type) {this.type = type;}public String getWork() {return work;}public void setWork(String work) {this.work = work;}
}

如果直接使用会因为case后跟的是常量表达式而导致报错

解决办法:知道枚举的值,可先获取枚举值对应的枚举,再使用switch

1、修改枚举类,新增一个静态方法,getByType()

package com.jaryn.emun;public enum SexType {MAN(1, "男"),GIRL(2, "女"),OTHER(0, "未知"),;private int type;private String work;SexType(int type, String work) {this.type = type;this.work = work;}public int getType() {return type;}public void setType(int type) {this.type = type;}public String getWork() {return work;}public void setWork(String work) {this.work = work;}public static SexType getByType(int type){for (SexType constants : values()) {if (constants.getType() == type) {return constants;}}return OTHER;}
}

2、修改方法逻辑

Java switch 使用枚举类相关推荐

  1. Java状态码枚举类

    前言:当浏览者访问一个网页时,浏览者的浏览器会向网页所在服务器发出请求.当浏览器接收并显示网页前,此网页所在的服务器会返回一个包含HTTP状态码的信息头(server header)用以响应浏览器的请 ...

  2. Java中使用枚举类和switch实现映射存储的类似策略模式实现定制化流程

    场景 设计模式-策略模式在Java中的使用示例: 设计模式-策略模式在Java中的使用示例_java 策略模式示例_霸道流氓气质的博客-CSDN博客 上面讲了策略模式在Java中的使用示例. 但是在有 ...

  3. java中的枚举类_java中的枚举类型

    java中为了对参数类型使用限定,引入了泛型,实现了在编译期对参数类型是否合法的判断.同样,java为了对参数的值的限定,引入了枚举类,实现了在编译期对参数的值是否合法的判断. 首先我们用自定义类的方 ...

  4. java.lang包—枚举类Enum

    原文作者:山高我为 原文地址:java enum的用法详解 目录 一.enum关键字 二.Enum类源码 三.疑问 四.Enum常见用法 一.enum关键字 enum关键字是在Java1.5也就是Ja ...

  5. 一文带你深入理解【Java基础】· 枚举类

    写在前面 Hello大家好, 我是[麟-小白],一位软件工程专业的学生,喜好计算机知识.希望大家能够一起学习进步呀!本人是一名在读大学生,专业水平有限,如发现错误或不足之处,请多多指正!谢谢大家!!! ...

  6. Java面向对象编程-枚举类

    枚举类 1.枚举 很多的编程语言都会提供有枚举的概念,但是Java一直到JDK1.5之后才提出了枚举的概念 在实际的开发之中,枚举的实际作用是用于定义有限个数对象的一种结构(多例设计),枚举就属于多例 ...

  7. c枚举类型enum例题_一篇文章让你详细了解Java中Enum枚举类的使用

    文章前记 程序员工作久了便可能整日忙碌于"增删改查"中,迷失方向,毫无进步. 该公众号致力于分享软件开发相关的原创干货,助你完成从程序员到架构师的进阶之路! 努力!做一个NB的Co ...

  8. enum java 比较_Kotlin与Java比较:枚举类

    前言 Kotlin作为JVM系的语言,起源于Java又不同于Java.通过在语言层面比较两者的区别,可以使得开发者能够快速学习,融会贯通. 枚举使用场景 使用枚举的场景非常明确,即只要一个类的对象是有 ...

  9. java+switch语句+枚举_Java:在子类下使用带有枚举的switch语句

    Java:在子类下使用带有枚举的switch语句 首先,我将说明我对C#中的枚举更加熟悉,看起来java中的枚举非常混乱. 正如您所看到的,我正在尝试在下一个示例中使用switch语句@enums,但 ...

  10. Java中的枚举类是什么?enum关键字怎么使用?

    枚举类 文章目录 枚举类 枚举类的使用:入门 自定义枚举类 方法一:自定义枚举类 方式二: enum 关键字定义枚举类(主要用该方式) Enum类的主要方法 使用enum关键字定义的枚举类实现接口 主 ...

最新文章

  1. MySQL---数据库从入门走向大神系列(十二)-构建MVC项目
  2. 系统安装重装与优化:chapter7 操作系统的修复与重装
  3. 蝴蝶曲线python_ProE常用曲线方程:Python Matplotlib 版本代码(蝴蝶曲线)
  4. 11岁过python1级_11岁表弟写的Python零基础入门笔记!
  5. efcore技巧贴-也许有你不知道的使用技巧
  6. 逆序对(洛谷-P1908)
  7. 什么都不懂的学java难不难_零基础转行学java到底难不难
  8. BZOJ4001[TJOI2015]概率论(数学、期望、生成函数、卡特兰数)
  9. FireMonkey 跨平台框架下的图片缩放和 JPEG 编码
  10. 谷歌地球Google Earth打不开的解决办法
  11. 93年券商未转正员工猝死:一个金融人要牺牲多少健康,才能保住饭碗?
  12. 基于ARM裸机的知识点总结(9)------- S5PV210的定时器、看门狗和RTC
  13. 利用Calendar类制作日历
  14. 使用U盘安装windows系统时提示找不到任何设备驱动程序
  15. 逆向破解之易语言按钮事件特征码
  16. 阿里云服务器上面关闭tomcat报错
  17. 艺赛旗(RPA)新手课堂 - 原始字符串为什么不能以反斜杠结尾
  18. 如何在MySQL中创建新的数据库(windows下)
  19. 复旦大学邱锡鹏:若优化顺利,MOSS三月底开源;库克或被踢出苹果董事会;华为云联合CSDN发布智能化编程助手Snap|极客头条
  20. WC2015 冬眠营滚粗记

热门文章

  1. 从“制造”之城,到“智造”标杆,长沙何以站上发展新高地?
  2. VMware用rz传输文件
  3. 同比和环比的计算方式
  4. youtube的使用体会
  5. # [Contrastive Learning] Contrastive Coherence Preserving Loss for Versatile Style Transfer
  6. win7用计算机名无法访问局域网,Win7局域网不能访问的解决方法
  7. onselect 与 onselectstart
  8. Magic-api介绍及使用
  9. win10 教育版本变专业版本
  10. App下载的视频导进电脑中生成.mp4文件的方法