• java enum类自定义属性


    enum类自定义属性

    这就是enum比static静态变量好用的地方了,可以赋予每一个枚举值若干个属性,例如

    实例1:

    public enum GasStationChannel {
        ZH("中化", "100001"),
        APP("APP", "100002"),
        QZ("撬装", "100003"),
        ZYW("找油网", "100004"),
        YZG("油掌柜", "100005"),
        YZX("油战线", "100006"),
        SHELL("壳牌", "100007"),
        CHEBEI("车呗", "100008"),
        SHANGAO("山东高速", "100009"),
        GUANDE("冠德", "100010");
    
        private String name;
        private String code;
    
        GasStationChannel(String name, String code) {
            this.name = name;
            this.code = code;
        }
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public String getCode() {
            return code;
        }
    
        public void setCode(String code) {
            this.code = code;
        }
    
        public static GasStationChannel parse(String code) {
            if(code==null){
                return null;
            }
            for (GasStationChannel channelType : GasStationChannel.values()) {
                if (channelType.getCode().equals(code)) {
                    return channelType;
                }
            }
            return null;
        }
    
        @Override
        public String toString() {
            return "name:"+this.name+",code:"+this.code;
        }}
    

     实例2:

    public enum Domain {
    
    
        XB("11","西北"),
        HD("13","华东"),
        DB("14","东北"),
        HB("15","华北");
    
        private String code;
        private String name;
    
        Domain(String code,String name) {
            this.code = code;
            this.name = name;
        }
    
        public String getCode() {
            return code;
        }
        public String getName(){
            return name;
        }
    
        /**
         * 根据domain code,返回枚举类型
         */
        public static Domain getDomain(String code) throws Exception {
    
            Domain domain = null;
            switch (code.trim()) {
                case "11":
                    domain = XB;
                    break;
                case "13":
                    domain = HD;
                    break;
                case "14":
                    domain = DB;
                    break;
                case "15":
                    domain = HB;
                    break;
                default:
                    throw new Exception(String.format("传入的域ID[%s]不存在,请检查!", code));
            }
            return domain;
        }
    }
    

      以上两种都能实现,根据个人喜好选择,个人更倾向于实例1,代码结构更优美

  • 相关阅读:
    对话框隐藏的简单实现(转)
    CoInitializeSecurity 学习(转)
    VC++实现CD/DVD刻录(转)
    网络连接的保活机制(心跳机制转)
    tcp架构
    木马的隐藏及其启动方式 (转)
    vs2005 控件bug
    vs2005 虚拟调试配置(转)
    sprintf用法(转)
    要掌握真正的免杀必须懂汇编【汇编语言超浓缩教程】(转)
  • 原文地址:https://www.cnblogs.com/unknows/p/11200246.html
Copyright © 2020-2023  润新知