美文网首页
枚举: 使用小汇总

枚举: 使用小汇总

作者: 极客123 | 来源:发表于2018-09-19 14:08 被阅读0次

    枚举enum是同class,interface同一级别的特性。 枚举enum不能被继承。

    枚举示例:

    public enum  test{
        A,B,C
    }
    
    有人说枚举就是穷举,大体是因为枚举是有限的,可以说是某各类的有限集。

    枚举可以限制实例的产生,可以应用在多例模式中。
    每个对象需要单独重写枚举里面的每个抽象方法。


    常用API

    compareTo(enum obj);
    toString() 该方法和name() 可以翻看源码对比下


    返回值是 int 类型 , 相同的枚举对象返回0,前者比后者,前者在前为负,具体负多少根据前者与后者相隔的个数,前者在后为正。

    通畅如果枚举较多,可以用接口来管理,例如:

    /**
     * 通过接口整合各种枚举类
     */
    public interface Food {
        enum Coffee implements Food{  
            BLACK_COFFEE,DECAF_COFFEE,LATTE,CAPPUCCINO  
        }  
        enum Dessert implements Food{  
            FRUIT, CAKE, GELATO
        }
    }
    
    

    枚举类型通过分好结束实例列表,同时可以在内部构造方法,示例:

    public enum ENUM_ITSM {
        EVENT_RESET("重派","A")
        ,EVENT_TRANCE("转发","B");
        private String desc;
        private String key;
        private ENUM_ITSM(String name, String key) {
            this.desc = name;
            this.key = key;
        }
        public String getName() {
            return desc;
        }
        public String getKey() {
            return key;
        }
    }
    

    枚举功效:

    保证了类型安全:调用者无法随意传一个 int 值
    代码可读性非常高

    撸一波小代码
    public enum TaskStatus {
        UN_KNOW,
        UN_START,
        PROGRESSING,
        COMPLETED
    }
    
    public class TaskHelper {
        public static void doSth(TaskStatus status){
            switch (status){
                case UN_KNOW:
                    //do something
                    break;
                case UN_START:
                    break;
                case PROGRESSING:
                    break;
                case COMPLETED:
                    break;
            }
        }
    }
    
    TaskHelper.doSth(TaskStatus.COMPLETED); 
    获取数据的时候传入指定类型的数据
    数据在枚举保护下
    完全可以说,它不是随便的人。。。
    枚举使用让代码可读性更高,更规范。
    

    枚举缺点: 相比较静态常量,枚举占用更多的内存,内存资源消耗大

    最近整改老项目,错误码和一些命名极不规范,这边状态码用枚举重构了下,至少看着规范了,希望对枚举有深入研究的给老铁补充下,如有错误,望请指正。

    相关文章

      网友评论

          本文标题:枚举: 使用小汇总

          本文链接:https://www.haomeiwen.com/subject/yxcinftx.html