枚举类的理解和应用

旧城等待, 2022-08-09 01:56 267阅读 0赞

枚举类型

定义

  1. 用于声明一组命名的常数,当一个变量有几种可能的取值时,可以将它定义为枚举类型。是指将变量的水电费水电费水电费列出来,变量的值只限于列举出来的值的范围内。

简单形式

  1. `public enum StatusEnum {AVAIABLE,DISABLED}`
  2. 只是定义一个枚举然后里面写入几个常量而已,可以将一些有关类型的信息保存在枚举类里面,在使用的时候发现`StatusEnum.AVAIABLE`代表的是该枚举类型的量,觉得比较奇怪枚举里面不是常量吗,为啥还是枚举类型呢,原来枚举里面的各个选项是枚举的具体实例,可以这样理解枚举类型上面的枚举可以写成下面的形式。
  3. 代码如下:
  4. `public class StatusEnum { private static final StatusEnum AVAIABLE ="AVAIABLE"; private static final StatusEnum DISABLED="DISABLED";}`

重写构造函数

  1. 我们可以通过重写构造函数让枚举类型复杂一些,为我们保存类型于键值对的值,例如异常信息、前后端状态码信息等都可以保存在里面,举个Spring框架用到的HttpStatus该枚举类保存了后端返回到前端的各种错误状态码以及原因,源码如下:
  2. public enum HttpStatus {
  3. // 1xx Informational
  4. /** * {@code 100 Continue}. * @see <a href="http://tools.ietf.org/html/rfc7231#section-6.2.1">HTTP/1.1: Semantics and Content, section 6.2.1</a> */
  5. CONTINUE(100, "Continue"),
  6. /** * {@code 101 Switching Protocols}. * @see <a href="http://tools.ietf.org/html/rfc7231#section-6.2.2">HTTP/1.1: Semantics and Content, section 6.2.2</a> */
  7. SWITCHING_PROTOCOLS(101, "Switching Protocols"),
  8. /** * {@code 102 Processing}. * @see <a href="http://tools.ietf.org/html/rfc2518#section-10.1">WebDAV</a> */
  9. PROCESSING(102, "Processing"),
  10. ……………………省略
  11. 我们自定义的UserStatus为:
  12. package com.tgb.admin.model;
  13. public enum UserStatus {
  14. /** 无效*/
  15. DISABLED(0,"the user is not exits"),
  16. /** 有效 */
  17. AVAILABLE(1,"user is persistent");
  18. private int status;
  19. private String value;
  20. UserStatus(int status,String content){
  21. this.status = status;
  22. this.value=content;
  23. }
  24. public int getStatus() {
  25. return status;
  26. }
  27. public String getValue(){
  28. return value;
  29. };
  30. }
  31. 设计和使用枚举是为了提供一组不变的常量,所以,我们并给成员变量提供set方法。

枚举作为实体属性映射

  1. 想把枚举作为实体的一个属性映射到数据库里面,这样省了很多转换过程,如枚举状态为1,表示无效,2表示有效,让枚举自动转换保存到数据库里面为整形,mybatis映射查了查是可以完成枚举映射的,不过在映射过程中总是出错,暂时还没有映射成功,只是加深一下对于枚举类型的理解和使用。
  2. 日后应该多应用一下枚举

发表评论

表情:
评论列表 (有 0 条评论,267人围观)

还没有评论,来说两句吧...

相关阅读

    相关 理解

    什么是枚举类? 当一个类的对象个数是有限的,那么就称这个类为枚举类。 怎么定义枚举类? JDK5.0之前: 1. 私有化构造器,因为类的对象个数是有限的。 2

    相关 _其他应用

    可以使用枚举实现一个接口 可以在枚举类中定义抽象方法 枚举类型可以跟普通的类一样实现一个接口,但是实现接口的时候要求枚举中的每个对象都必须单独覆写好接口中的抽象方法。 \

    相关 理解应用

    枚举类型 定义 用于声明一组命名的常数,当一个变量有几种可能的取值时,可以将它定义为枚举类型。是指将变量的水电费水电费水电费列出来,变量的值只限于列举出来的

    相关 JAVA 初步理解

    JAVA 枚举类的初步理解 现在Java的枚举类在真实项目中已经用的比较频繁,比静态常量更好用,也更有限定性,enum类可以用来表示有限的类对象,比如星期、月份、性别或者项目

    相关

    一、简介             枚举类,写起来代码比较优雅,一个对象的所有的状态值和状态名称都在一个枚举类中,方便维护。另外可以有一些特殊用法,如接口枚举集合(适用于枚

    相关

    总结: 1. 所有枚举值都是 public static final 的,且非抽象的枚举类不能再派生子类。 2. 枚举值必须在枚举类的第一行显式地列出,否则这个枚举类将永