专栏首页别先生Java枚举类使用和总结

Java枚举类使用和总结

1、枚举类使用情况一:

  1 package com.bie.util;
  2 
  3 import java.util.HashMap;
  4 import java.util.Map;
  5 
  6 /**
  7  * 
  8  * @author biehl
  9  *
 10  * @date 2018年8月2日上午9:18:16
 11  * 
 12  * @Notes 枚举,返回登陆结果案例
 13  *
 14  */
 15 public enum LoginResult {
 16 
 17     LOGIN_SUCCESS(0, "登陆成功"),
 18     LOGIN_FAILED(1, "登陆失败"),
 19     LOGIN_ACCOUNT_NO(2, "登陆账号不存在"),
 20     LOGIN_ACCOUNT_ERROR(3, "登陆账号错误"),
 21     LOGIN_PASSWORD_ERROR(4, "登陆密码错误");
 22     
 23     private int type;//类型
 24     private String desc;//描述
 25     //构造方法,决定了上面枚举的字段
 26     private LoginResult(int type, String desc) {
 27         this.type = type;
 28         this.desc = desc;
 29     }
 30     
 31     public int getType() {
 32         return type;
 33     }
 34     public void setType(int type) {
 35         this.type = type;
 36     }
 37     public String getDesc() {
 38         return desc;
 39     }
 40     public void setDesc(String desc) {
 41         this.desc = desc;
 42     }
 43     
 44     
 45     /**
 46      * 根据type获取到描述desc
 47      * @param type
 48      * @return
 49      */
 50     public static String getResultDescByType(int type){
 51         //获取到枚举
 52         LoginResult[] values = LoginResult.values();
 53         //加强for循环进行遍历操作
 54         for(LoginResult lr : values){
 55             //如果遍历获取的type和参数type一致
 56             if(lr.getType() == type){
 57                 //返回type对象的desc
 58                 return lr.getDesc();
 59             }
 60         }
 61         return null;
 62     }
 63     
 64     /**
 65      * 根据type获取到对应的enum
 66      * @param type
 67      * @return
 68      */
 69     public static LoginResult getResultEnumByType(int type){
 70         //获取到枚举
 71         LoginResult[] values = LoginResult.values();
 72         for(LoginResult lr : values){
 73             if(lr.getType() == type){
 74                 return lr;
 75             }
 76         }
 77         return null;
 78     }
 79     
 80     
 81     /**
 82      * getChoiceMap
 83      * @return
 84      */
 85     public static Map<Integer, String> getChoiceMap(){
 86         Map<Integer, String> map = new HashMap<Integer, String>();
 87         for(LoginResult lr : LoginResult.values()){
 88             map.put(lr.getType(), lr.getDesc());
 89         }
 90         return map;
 91     }
 92     
 93     public static void main(String[] args) {
 94         //根据type获取到对应的desc
 95         //运行结果:登陆成功
 96         //System.out.println(LoginResult.getResultDescByType(0));
 97         
 98         //可以根据type获取到对应的enum枚举
 99         //运行结果:LOGIN_SUCCESS
100         System.out.println(LoginResult.getResultEnumByType(0));
101         
102         //将type和desc封装到map集合里面
103         //运行效果:{0=登陆成功, 1=登陆失败, 2=登陆账号不存在, 3=登陆账号错误, 4=登陆密码错误}
104         //System.out.println(LoginResult.getChoiceMap());
105     }
106     
107 }

2、枚举类使用情况二:

 1 package com.bie.util;
 2 
 3 /**
 4  * 
 5  * @author biehl
 6  *
 7  * @date 2018年8月2日下午3:38:28
 8  * 
 9  * @Notes REGISTER("注册"),这种类型的枚举可以使用在调用此枚举类然后使用switch来匹配到对应的方法
10  *
11  */
12 public enum OperatorType {
13 
14     REGISTER("注册"),
15     LOGIN("登陆"),
16     INSERT("增加"),
17     DELETE("删除"),
18     UPDATE("修改"),
19     SELECT("查询"),
20     ;
21     
22     //构造方法
23     private OperatorType(String desc){
24         this.desc = desc;
25     }
26     
27     private String desc;//描述
28     
29     public String getDesc() {
30         return desc;
31     }
32     public void setDesc(String desc) {
33         this.desc = desc;
34     }
35     
36     /**
37      * 根据desc获取到enum
38      * @param desc
39      * @return
40      */
41     public static OperatorType getResultEnumByDesc(String desc){
42         OperatorType[] values = OperatorType.values();
43         for(OperatorType ot : values){
44             if(ot.getDesc() == desc){
45                 return ot;
46             }
47         }
48         return null;
49     }
50     
51     
52     public static void main(String[] args) {
53         //根据desc获取到enum
54         //结果:DELETE
55         System.out.println(OperatorType.getResultEnumByDesc("删除"));
56         
57     }
58     
59 }

3、枚举类使用情况三:

  1 package com.bie.util;
  2 
  3 import java.util.HashMap;
  4 import java.util.Map;
  5 
  6 public enum GroupEnum {
  7 
  8     GROUP_ONE(0,"group_one","一组"),
  9     GROUP_TWO(1,"group_two","二组"),
 10     GROUP_THREE(2,"group_three","三组"),
 11     GROUP_FOUR(3,"group_four","四组"),
 12     GROUP_FIVE(4,"group_five","五组"),
 13     GROUP_SIX(5,"group_six","六组"),
 14     GROUP_SENVEN(6,"group_senven","七组"),
 15     ;
 16     
 17     private GroupEnum(int id, String type, String desc) {
 18         this.id = id;
 19         this.type = type;
 20         this.desc = desc;
 21     }
 22     
 23     private int id;
 24     private String type;
 25     private String desc;
 26     
 27     public int getId() {
 28         return id;
 29     }
 30     public void setId(int id) {
 31         this.id = id;
 32     }
 33     public String getType() {
 34         return type;
 35     }
 36     public void setType(String type) {
 37         this.type = type;
 38     }
 39     public String getDesc() {
 40         return desc;
 41     }
 42     public void setDesc(String desc) {
 43         this.desc = desc;
 44     }
 45     
 46     /**
 47      * 根据type获取到对应的enum
 48      * @param type
 49      * @return
 50      */
 51     public static GroupEnum getResultEnumByType(String type){
 52         GroupEnum[] values = GroupEnum.values();
 53         for(GroupEnum ge : values){
 54             if(ge.getType() == type){
 55                 return ge;
 56             }
 57         }
 58         return null;
 59     }
 60     
 61     /**
 62      * 根据type获取到对应的desc
 63      * @param type
 64      * @return
 65      */
 66     public static String getResltDescByType(String type){
 67         GroupEnum[] values = GroupEnum.values();
 68         for(GroupEnum ge : values){
 69             if(ge.getType() == type){
 70                 return ge.getDesc();
 71             }
 72         }
 73         return null;
 74     }
 75     
 76     /**
 77      * 获取到封装的type和desc
 78      * @return
 79      */
 80     public static Map<String, String> getChoiceMap(){
 81         Map<String, String> map = new HashMap<String, String>();
 82         for(GroupEnum ge : GroupEnum.values()){
 83             map.put(ge.getType(), ge.getDesc());
 84         }
 85         return map;
 86     }
 87     
 88     public static void main(String[] args) {
 89         //根据参数2,type获取到对应的enum
 90         //运行结果:GROUP_ONE
 91         //System.out.println(GroupEnum.getResultEnumByType("group_one"));
 92         
 93         //根据type获取到对应的desc
 94         //运行结果:一组
 95         //System.out.println(GroupEnum.getResltDescByType("group_one"));
 96         
 97         //获取到封装好的type和desc
 98         //运行结果:{group_senven=七组, group_six=六组, group_one=一组, group_five=五组, group_three=三组, group_two=二组, group_four=四组}
 99         System.out.println(GroupEnum.getChoiceMap());
100     }
101     
102 }

待续.......

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Java中使用Jackson,对JSON和对象进行转换

    如果是单独加这个依赖包,使用上面的即可。如果是使用Springboot开发项目,那么这个依赖包是直接封装好的,不用单独加了,自己可以使用工具进行查看,看看是否有...

    别先生
  • c3p0和QueryRunner的结合使用,让开发更加简便

    1:DBUtils中的QueryRunner的使用:   1.1:QueryRunner中提供了对SQL语句操作的api;   1.2:主要有三个方法:    ...

    别先生
  • Struts2(接受表单参数)请求数据自动封装和数据类型转换

    Struts2请求数据自动封装:   (1)实现原理:参数拦截器   (2)方式1:jsp表单数据填充到action中的属性;        普通的成员变量,...

    别先生
  • Spring boot整合shiro权限管理

    二十三年蝉
  • 模仿Hibernate的逆向工程_java版_源码下载

    在这篇blog:"Hibernate逆向工程原理_java版本"中谈到了Hibernate逆向工程原理。

    Hongten
  • 资源池模式和单例模式实现的自定义数据库连接池java实现版

    在企业级开发中,我们往往不会直接使用原生的JDBC操作来实现与数据库得连接。因为数据库的连接是一个很宝贵的资源且耗时,我们往往会在内存中引入一个资源池来统一管理...

    Theone67
  • Spring Boot使用Shiro实现登录授权认证

    1、Shiro是Apache下的一个开源项目,我们称之为Apache Shiro。它是一个很易用与Java项目的的安全框架,提供了认证、授权、加密、会话管理,与...

    朝雨忆轻尘
  • springboot整合springsecurity框架,整合jsp页面,并且让项目识别jsp页面,数据源配置为数据库,完成连接数据库的认证操作(集中式项目)(二)

    在springboot项目里面,一般是不建议使用jsp页面的,但是还是可以使用的,我们通过springboot的启动类进行启动项目,是不识别jsp页面的,所以不...

    一天不写程序难受
  • Android的配置文件操作的完美封装(使用注解 反射让配置文件操作如此清晰和简单)

    比如我存个 IP ,就得单独调 put("ip","127.0.0.1"), 开机时还得先 String ip = get("ip")去加载。

    特立独行的猫a
  • Consul-Proxy:使用netty实现快速服务注册(三)使用第三方数据源

    Springcloud+consul作为微服务的注册已经见怪不怪了,试下也很流行,在我个人云服务器上,我也是这样做的。

    品茗IT

扫码关注云+社区

领取腾讯云代金券