美文网首页
枚举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 枚举下标从0开始int ordinal = SUCCESS.ordinal(); ...

  • 枚举ordinal方法

    枚举的ordinal方法返回枚举项在枚举类中出现的序号 如下例子: 输出结果是:1 类似数组的下标。 很多业务需求...

  • 枚举ordinal()方法

    package All.D13.Enum_; public enum PeopleEnum {People_1,P...

  • java中enum枚举类型

    枚举类型常用方法:values()返回枚举类型定义数组ordinal()返回实例在枚举类型定义的次序,默认从0开始...

  • Java基础-枚举

    一、枚举类型 枚举类的常用方法 name(); 返回enum实例声明时的名字。 ordinal(); 返回一个...

  • 第33条:用EnumMap代替序数索引

    序数索引是指依赖于枚举成员在枚举中的序数(ordinal方法返回值)来进行数组索引,如:public class ...

  • 第三十五条:用实例域代替序数

    许多枚举天生就是与一个单独的int值相关联。所有的枚举都有一个ordinal方法,它返回每个枚举常量在类型中的数字...

  • [Effective Java] Item 31: Use in

    所有的enum都有一个ordinal方法,它返回每个enum在类型中的数字位置: 这个枚举方法非常不好维护。如果常...

  • JAVA ENUM 实例用法

    执行结果: 演示枚举类型的遍历 ......当前灯name:RED当前灯ordinal:0当前灯:1当前灯name...

  • 提示三十七

    提示三十七: 使用 EnumMap 替代序数索引。 ordinal属性是Enum类的私有属性,每个枚举常量类型都会...

网友评论

      本文标题:枚举ordinal方法

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