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 }
待续.......