Java:没有方法可以获得枚举常量的索引?

时间:2014-03-26 14:34:56

标签: java enums integer

我真的很想知道是否有一种有效的方法来获得Enum的索引常数。 我可以想到两种方法: 迭代MyEnum.values() 或给每个常量一个标识它的整数:

public enum MyEnum {

    CONSTANT_ONE(0),
    CONSTANT_TWO(1),
    CONSTANT_THREE(2),
    CONSTANT_FOUR(3);

    private int index;

    private MyEnum(int index){
        this.index = index;
    }

    public int getIndex(){
        return index;
    }

}

但是这些方法对我来说似乎有点迂回。 是否有更好的,甚至是官方的方法来实现这一目标?

1 个答案:

答案 0 :(得分:3)

如果您的意思是在不使用额外变量的情况下获取枚举的位置,则可以使用Enum#ordinal()方法。