博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
枚举类的理解和应用
阅读量:6836 次
发布时间:2019-06-26

本文共 1738 字,大约阅读时间需要 5 分钟。

枚举类型

定义

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

简单形式

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

重写构造函数

我们可以通过重写构造函数让枚举类型复杂一些,为我们保存类型于键值对的值,例如异常信息、前后端状态码信息等都可以保存在里面,举个Spring框架用到的HttpStatus该枚举类保存了后端返回到前端的各种错误状态码以及原因,源码如下:
public enum HttpStatus {    // 1xx Informational    /**     * {@code 100 Continue}.     * @see HTTP/1.1: Semantics and Content, section 6.2.1     */    CONTINUE(100, "Continue"),    /**     * {@code 101 Switching Protocols}.     * @see HTTP/1.1: Semantics and Content, section 6.2.2     */    SWITCHING_PROTOCOLS(101, "Switching Protocols"),    /**     * {@code 102 Processing}.     * @see WebDAV     */    PROCESSING(102, "Processing"),    ……………………省略
我们自定义的UserStatus为:
package com.tgb.admin.model;public enum UserStatus {    /** 无效*/      DISABLED(0,"the user is not exits"),      /** 有效 */      AVAILABLE(1,"user is persistent");      private int status;      private String value;    UserStatus(int status,String content){          this.status = status;          this.value=content;    }      public int getStatus() {          return status;      }      public String getValue(){        return value;    };}
设计和使用枚举是为了提供一组不变的常量,所以,我们并给成员变量提供set方法。

枚举作为实体属性映射

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

转载于:https://www.cnblogs.com/lilongsheng1125/p/4978484.html

你可能感兴趣的文章
Java面试003-前端篇
查看>>
who
查看>>
算法大全—1-冒泡排序法
查看>>
百炼骑车与走路
查看>>
汉诺塔(一)http://acm.nyist.net/JudgeOnline/problem.php?pid=88
查看>>
setTimeout()基础/setInterval()基础
查看>>
[转]iOS框架和服务
查看>>
linux 忘记root密码的解决办法
查看>>
[题解]UVA10129 Play on Words
查看>>
第一章 财务管理基本原理
查看>>
求冒泡的次数 (树状数组)
查看>>
快速傅里叶变换(FFT)
查看>>
loj2541【PKUWC2018】猎人杀
查看>>
API编程的详细介绍(转)
查看>>
如何自定义一个优雅的ContentProvider
查看>>
地理定位Geolocation API
查看>>
asp.net mvc用jquery向action提交json列表数据
查看>>
mybatis 多个中间表查询映射
查看>>
Cannot find module '../lib/utils/unsupported.js'
查看>>
asp.net Treeview控件
查看>>