枚举类定义如下:


public enum Status {SCUUESS("1", "成功"), FAILED("2", "失败");private String value;private String desc;public String getValue() {return value;}public void setValue(String value) {this.value = value;}public String getDesc() {return desc;}public void setDesc(String desc) {this.desc = desc;}private Status(String value, String desc) {this.value = value;this.desc = desc;}
}

使用的方式如下:


public class StutusTest {public static void main(String[] args) {System.out.println(Status.SCUUESS.getValue());System.out.println(Status.SCUUESS.getDesc());System.out.println(Status.FAILED.getValue());System.out.println(Status.FAILED.getDesc());}
}

再比如,我们在操作数据库的时候,通常使用数字保存到数据库中,但是在界面上显示的时候,需要展示其中文意思,南无我们就可以通过下边的方式:

public enum FlightType {OW(1, "单程"), RT(2, "往返");public Integer code;public String desc;FlightType(Integer code, String desc) {this.code = code;this.desc = desc;}public Integer getCode() {return code;}public void setCode(Integer code) {this.code = code;}public String getDesc() {return desc;}public void setDesc(String desc) {this.desc = desc;}public static FlightType getTypeByCode(Integer code) {FlightType defaultType = FlightType.OW;for (FlightType ftype : FlightType.values()) {if (ftype.code == code) {return ftype;}}return defaultType;}public static String getDescByCode(Integer code) {return getTypeByCode(code).desc;}
}

这样的话,我们就可以通过getDescByCode方法获得其对应的中文。

另外,参数的个数是可以进行变化的,例如下边:

public enum DatabaseType {unknown(null, null, null,null),mysql("com.mysql.jdbc.Driver", "com.mysql.jdbc.jdbc2.optional.MysqlXADataSource", "select 1",Dialect.MYSQL),h2("org.h2.Driver", "org.h2.jdbcx.JdbcDataSource", "select 1",Dialect.H2),oracle("oracle.jdbc.driver.OracleDriver", "oracle.jdbc.xa.client.OracleXADataSource", "select 1 from dual",Dialect.ORACLE);DatabaseType(String driverClassName, String xaDataSourceClassName, String testQuery,Dialect dialect) {this.driverClassName = driverClassName;this.testQuery = testQuery;this.xaDataSourceClassName = xaDataSourceClassName;this.dialect=dialect;}private final String testQuery;private final String driverClassName;private final String xaDataSourceClassName;private final Dialect dialect;public String getDriverClassName() {return driverClassName;}public String getXaDataSourceClassName() {return xaDataSourceClassName;}public String getTestQuery() {return testQuery;}public Dialect getDialect() {return dialect;}public static DatabaseType fromJdbcUrl(String url) {if (StringUtils.hasLength(url)) {Assert.isTrue(url.startsWith("jdbc"), "URL must start with 'jdbc'");String urlWithoutPrefix = url.substring("jdbc".length()).toLowerCase();for (DatabaseType driver : values()) {String prefix = ":" + driver.name().toLowerCase() + ":";if (driver != unknown && urlWithoutPrefix.startsWith(prefix)) {return driver;}}}return unknown;}
}

Java中枚举类型Enum的一种使用方式相关推荐

  1. 《挑战30天C++入门极限》新手入门:C/C++中枚举类型(enum)

        新手入门:C/C++中枚举类型(enum) 如果一个变量你需要几种可能存在的值,那么就可以被定义成为枚举类型.之所以叫枚举就是说将变量或者叫对象可能存在的情况也可以说是可能的值一一例举出来. ...

  2. C#中枚举类型enum的使用[转载]

    C#中枚举类型enum的使用 关于enum应用的总结(摘自http://hi.baidu.com/yangzhiping/blog/item/9d841fd5a4309dc451da4baa.html ...

  3. java枚举类型有什么用_[转载] Java中枚举类型的使用 - enum

    本文转载自博客 - Java枚举类型, 博主对原文内容及结构作了一定的修改. 1 枚举类的编译特性 从JDK 5开始, Java中多了一个关键字 -- enum: 可以将一组具有名称的值(包括Stri ...

  4. java之枚举类型enum

    一.什么是枚举类 1.在某些情况下,一个类的对象时有限且固定的,如季节类,它只有春夏秋冬4个对象这种实例数目有限且固定的类,在 Java 中可以定义为枚举类. 2.枚举类是一种特殊的类,它和普通的类一 ...

  5. java中枚举类型详解

    枚举类型的引入: 枚举是从java5开始提供的一种新的数据类型,是一个特殊的类,就是固定的多个常量对象的集合. 定义格式: [修饰]enum 枚举类名 { 常量A,常量B,常量C; } 代码: pac ...

  6. python中枚举类型enum用法_Python枚举类型Enum用法详解

    实际开发中,我们离不开定义各种类型,当我们需要定义类型时,一般是通过一组整数来定义.比如:定义不同的月份 JAN 1 FEB 2 MAR 3 ... NOV 11 DEC 12 复制代码 大多数人想到 ...

  7. AOP 详解 、AOP 中通知类型 、AOP 两种实现方式(Schema-base 和 AspectJ)

    一.AOP AOP:中文名称面向切面编程 英文名称:(Aspect Oriented Programming) 正常程序执行流程都是纵向执行流程 3.1 又叫面向切面编程,在原有纵向执行流程中添加横切 ...

  8. java 调用枚举种方法_Java中枚举类型的一种使用方式

    今天改同事的代码发现同事的代码中有大量的if else语句.很不美观而且可读性太差. 因为需要给前端一个key,value的列表.这个列表写死.然而同事的代码. 放几张图,大家自己感受.我都不知道以后 ...

  9. c语言枚举类型enum用法参数,C语言枚举类型(Enum)

    在实际编程中,有些数据的取值往往是有限的,只能是非常少量的整数,并且最好为每个值都取一个名字,以方便在后续代码中使用,比如一个星期只有七天,一年只有十二个月,一个班每周有六门课程等. 以每周七天为例, ...

最新文章

  1. leetcode-142 环形链表II
  2. Altium Designer09解决局域网冲突问题
  3. mysql 枚举类型 映射_model类中enum类型与数据库字段的映射
  4. 一位大学教师对学生的建议:如何做好研究
  5. 浅谈同城双中心的网络部署模型
  6. Spring Boot之HelloWorld
  7. Win11新特性:在平板锁屏界面还有酷炫的3D视差效果
  8. ad用户和计算机无法启动,windows 2008AD计算机启动脚本无法执行
  9. 十六位顶尖专家齐聚,解密阿里云最新核心技术竞争力!
  10. 只需要几行代码就可以轻松实现OCR图片转文字
  11. rk3288 android6.0平台bt1120信号转mipi调试
  12. redis的配置文件修改
  13. STM32USB虚拟串口驱动 支持win10下载
  14. Epicor开发实例
  15. osm数据下载 python_Python环境下使用OpenStreetMap下载的.osm数据
  16. Linux 内核 notifier机制
  17. LeetCode热题100中使用辅助栈方法的题目的整理(待更)
  18. 怎么把pdf转换成高清图片
  19. java高级架构师工资多少啊,附源代码
  20. 【PS/AI】2021新年金色装饰背景矢量素材

热门文章

  1. 安卓控件使用系列2:TextView实现图文(图片和文字)混排
  2. JMeter入门教程详解
  3. 恒指李阳12.6日预测及操作建议
  4. 虚拟机环境搭建: virtualBox6.1+window10
  5. GitHub加速访问插件
  6. 黑色星期五促销活动销售数据分析
  7. 无代码开发是什么?白码详解
  8. Java写五子棋游戏(含人机对决,双人对决)
  9. 微信公众号申请页面获取验证码BUG
  10. Win10蓝牙的突然消失