美文网首页
枚举ordinal方法

枚举ordinal方法

作者: 帮我的鸵鸟盖个章 | 来源:发表于2019-10-24 14:23 被阅读0次

    枚举的ordinal方法返回枚举项在枚举类中出现的序号

    如下例子:

    public enum Light {
           // 红灯
           RED, 
           //绿灯  
           GREEN, 
           // 黄灯
           YELLOW;
    }
    
    
    public static void main(String[] args) {
        System.out.println(Light.GREEN.ordinal());
    }
    

    输出结果是:1

    类似数组的下标。

    很多业务需求中,枚举是与int相关联的,如果你不在枚举类中规定int,那么可以通过ordinal方法直接获取枚举项的序号。但这样不够直观,而且不易维护(只能在尾部添加,不然会造成数据混乱)。试想当枚举项越来越多的时候,想要知道枚举项对应的int值是多少并不容易。

    Enum规范中谈到ordinal时这么写到:“大多数的程序员都不需要这个方法。它是设计成用于像EnumSetEnumMap这种基于枚举的通用数据结构的。”除非你在编写的是这种数据结构,否则最好完全避免使用ordinal方法。

    所以尽量避免使用ordinal

    枚举的一般使用

    public enum Light {
        // 红灯
        RED(0),
        //绿灯
        GREEN(1),
        // 黄灯
        YELLOW(2);
    
        private Integer id;
    
        Light(Integer id) {
            this.id = id;
        }
    
        public Integer getId(){
            return this.id;
        }
        
    }
    
     public static void main(String[] args) {
            System.out.println(Light.GREEN.id);
        }
    

    输出结果是:1

    相关文章

      网友评论

          本文标题:枚举ordinal方法

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