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 }

 

待續.......


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM