java 枚举类非常好的运用实例

枚举类 举例:

 1 import lombok.Getter;
 2 
 3 public class PublicConstants {
 4     public enum StatusEnum {
 5 
 6         STATUS_TEMP_STORAGE(1,"暂存", "待提交"),
 7         STATUS_AUDI_TING(2,"审批中"),
 8         STATUS_AUDIT_PASS(3,"审批通过","审批通过","**确认·待***确认"),
 9         STATUS_AUDIT_REJECT(4,"审批驳回"),
10         STATUS_APPEAL(5,"申诉中", "申诉"),
11         STATUS_CANCEL(6,"已作废"),
12         STATUS_FINISH(7,"完成","完成","***已确认"),
13         STATUS_DELETE(8,"删除"),
14         STATUS_REVOKE(9,"已撤销");
15 
16         @Getter/** 码值 **/
17         private Integer code;
18         @Getter/** 名称 **/
19         private String name;
20         @Getter/** 别名 **/
21         private String alias;
22         @Getter/** 描述 **/
23         private String desc;
24 
25         StatusEnum(Integer code, String name, String alias, String desc) {
26             this.code = code;
27             this.name = name;
28             this.alias = alias;
29             this.desc = desc;
30         }
31 
32         StatusEnum(Integer code, String name, String alias) {
33             this.code = code;
34             this.name = name;
35             this.alias = alias;
36             this.desc = name;
37         }
38 
39         StatusEnum(Integer code, String name) {
40             this.code = code;
41             this.name = name;
42             this.alias = name;
43             this.desc = name;
44         }
45 
46         //通过描述获取code
47         public static int getCode(String name){
48             StatusEnum[] values = StatusEnum.values();
49             for(int i=0;i<values.length;i++){
50                 StatusEnum be = values[i];
51                 if(be.name.equalsIgnoreCase(name)){
52                     return be.code;
53                 }
54             }
55             return 0;
56         }
57 
58         //通过code获取枚举对象
59         public static StatusEnum getEnumByCode(Integer code) {
60             for (StatusEnum flagEnum : StatusEnum.values()) {
61                 if (code.equals(flagEnum.getCode())) {
62                     return flagEnum;
63                 }
64             }
65             return null;
66         }
67     }
68 
69 }

运用:

en.setStateName(PublicConstants.StatusEnum.getEnumByCode(en.getStatus()).getName());

说明:使用 常量类 PublicConstants 是为了 代码提示,方便编程。

原文地址:https://www.cnblogs.com/bridgestone29-08/p/15184201.html