2019独角兽企业重金招聘Python工程师标准>>>

枚举类相信不陌生,但实际开发中或者接手之前的代码,发现大部分还是使用常量Constant来替代,其实枚举类拥有更多的优点。

这里我们只讲一个开发中实际用到的例子,现在有如下的一个场景:

假设现在有一个实体类User,有一个属性status,如果status为0表示正常,status为1表示无效,而我们在数据库中存储是数值,但前端客户所看见的应该是字符串,如何来建立起这么一个关系?这里就可以用到枚举类,代码如下:

public class User implements Serializable {private static final long serialVersionUID = 5550303936960514419L;/** id */private Integer id;  //set,get方法省略/** 标题 */private String userName;//set,get方法省略/** 状态 */private String status;//set,get方法省略public static enum statusEnum{STATUS_ZHENCHANG (0, "正常"),STATUS_WUXIAO (1, "无效");private final int type;private final String desc;statusEnum(int type, String desc) {this.type = type;this.desc = desc;}public int getType () {return type;}public String getDesc () {return desc;}public static String getDesc (int index) {for (statusEnumc : statusEnum.values ()) {if (c.getType () == index) {return c.desc;}}return null;}}}

我们自己在User内部定义一个status的枚举类,来描述其状态值和说明,这里可以很直观的它们的关系,关于枚举类的基本用法可以自行了解。

接着,我们从数据库中查出了User,将status属性通过相应的映射为字符串描述,如下:

        User u = new User();u.setStatus(User.statusEnum.getDesc(u.getStatus()); //status,0:正常 1:无效System.out.println(u.getStatus());//输出为正常

这样就通过枚举类型,可以自定义的,并且很优美的进行开发工作,值得注意的是如上面的getDesc是我们自己写的,枚举类自己提供了一些操作本身元素的方法,如statusEnum.values就是返回所有的元素。

如有错误,欢迎大家指正。

转载于:https://my.oschina.net/u/3497902/blog/2236754

Java 使用枚举类的实例相关推荐

  1. java枚举类型原理_Java枚举类接口实例原理解析

    这篇文章主要介绍了Java枚举类接口实例原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 枚举类可以实现一个或多个接口.与普通类实现接口完全一 ...

  2. 【学亮IT手记】枚举类入门实例讲解

    什么是枚举类? 实例有限并且是固定的类,在Java里被称为枚举类. 手动实现枚举类的方法 public static final int SEASON_SPRING = 1; public stati ...

  3. java 修改 枚举类字段_枚举枚举和修改“最终静态”字段的方法

    java 修改 枚举类字段 在本新闻通讯中,该新闻通讯最初发表在Java专家的新闻通讯第161期中,我们研究了如何使用sun.reflect包中的反射类在Sun JDK中创建枚举实例. 显然,这仅适用 ...

  4. Java为枚举类创建成员变量_Java学习——枚举类

    Java学习--枚举类 摘要:本文主要介绍了Java的枚举类. 部分内容来自以下博客: https://www.cnblogs.com/sister/p/4700702.html https://bl ...

  5. Java 扫描枚举类并获取属性

    Java 扫描枚举类并获取属性 文章目录 Java 扫描枚举类并获取属性 第一步:在 pom.xml 下导入 hutool 和 commons-lang3 第二步:写一个接口以规范枚举的属性 第三步: ...

  6. java枚举注释_【Java】枚举类和注解

    一.枚举类的使用 1. 枚举类的说明: 枚举类的理解:类的对象只有有限个,确定的.我们称此类为枚举类 当需要定义一组常量时,强烈建议使用枚举类 枚举类的实现: JDK 5.0以前需要自定义 JDK 5 ...

  7. java+mock+例子_java – 如何使用PowerMock和Mockito模拟枚举类的实例?

    我试着按照这个非常相似的问题的答案提供的例子,但它对我不起作用.我收到以下错误消息: java.lang.IllegalArgumentException: Cannot subclass final ...

  8. java的枚举类enum

    为什么80%的码农都做不了架构师?>>>    本文永久地址:https://my.oschina.net/bysu/blog/1540903 定义一个枚举类 public enum ...

  9. java enum枚举类的用法以及高级玩法

    enum(枚举)类介绍 java枚举类是一组预定义常量的集合,使用enum关键字声明这个类,常量名称官方建议大写 1.enum类基本用法 举一个常见的例子,例如星期就可以描述为一个枚举类,如下 pub ...

最新文章

  1. DeeoID:Deep learning face representation from predicting 10,000 classes
  2. [Linux]CRC校验
  3. django基于存储在前端的token用户认证
  4. java开发 时间类型的转换
  5. Windows多线程多任务设计初步zz
  6. 基金理财系列6 之指数基金
  7. kitti raw data development kit的使用
  8. php字符编码转换问题
  9. 360安全浏览器极速模式怎么设置
  10. 内存测试_内存检测工具大全
  11. java applet介绍,Java Applet 介绍
  12. CISA,CISM,CISSP证书区别及cisp,oscp,osce,che简介
  13. SIGMOD 2020 CockRoach 论文阅读
  14. 语言模型及RNN模型
  15. 30000台苹果电脑遭恶意软件入侵,包括最新的M1系列
  16. 教你解决主板过热导致的频繁死机
  17. Jetson Nano 从入门到实战(案例:Opencv配置、人脸检测、二维码检测)
  18. centos恢复图形界面_centos7恢复图形界面_centos7没有图形界面
  19. 华为路由器:ipsec技术
  20. 结合GUI和simulink的三相电路谐波的检测与建模

热门文章

  1. arm linux读cpu id,基于ARM架构的芯片获取CPU信息(cpuID)的多种方法
  2. python从mysql导出大量数据_python批量导出导入MySQL用户的方法
  3. _效率高的Linux管理员都会的10个关键技巧
  4. php while for 性能,php的foreach,while,for的性能比较
  5. android combobox控件,Android中的组合框
  6. python反转列表_Python实现list反转实例汇总
  7. 用python做双人五子棋_基于python的socket实现单机五子棋到双人对战
  8. php mysql 条件查询语句_where 查询条件-Medoo - 高效的轻量级PHP数据库框架, 提高开发效率!...
  9. django的ajax_cookie和session
  10. excel如何返回双引号