关于java:如何获取一个枚举的可能项数?

How to get number of possible item of an Enum?

是否有一种内置的方式来获取带有Myenum.length之类的枚举的项数,

还是我必须对元素数量进行硬编码来实现自己的功能int size()


是的,您可以使用Enum.values()方法获取Enum值数组,然后使用length属性。

1
2
3
4
5
6
7
8
public class Main {
    enum WORKDAYS { Monday, Tuesday, Wednesday, Thursday, Friday; }

    public static void main(String[] args) {
        System.out.println(WORKDAYS.values().length);
        // prints 5
    }
}

http://ideone.com/zMB6pG


您可以使用Myenum.values().length获得长度

Enum.values()返回所有enum常量的数组。 您可以使用此数组的length变量来获取enum常数的数量。

假设您具有以下枚举:

1
2
3
4
public enum Color
{
    BLACK,WHITE,BLUE,GREEN,RED
}

以下语句将5分配给size

1
int size = Color.values().length;


enum.values()方法是Java编译器添加的,API中未提及。

Enum的values()方法的文档在哪里?


MyEnum.values()将枚举常量作为数组返回。

因此,您可以使用:

1
int size = MyEnum.values().length