是否有一种内置方法可以获取枚举的项目数量,例如Myenum.length
,
或者我必须自己实现一个函数int size()
硬编码元素的数量?
答案 0 :(得分:47)
是的,您可以使用Enum.values()
方法获取Enum值数组,然后使用length
属性。
public class Main {
enum WORKDAYS { Monday, Tuesday, Wednesday, Thursday, Friday; }
public static void main(String[] args) {
System.out.println(WORKDAYS.values().length);
// prints 5
}
}
答案 1 :(得分:10)
您可以使用Myenum.values().length
Enum.values()
返回所有enum
常量的数组。您可以使用此数组的length
变量来获取enum
常量的数量。
假设你有以下枚举:
public enum Color
{
BLACK,WHITE,BLUE,GREEN,RED
}
以下语句将5分配给size
:
int size = Color.values().length;
答案 2 :(得分:3)
MyEnum.values()
将枚举常量作为数组返回。
所以你可以使用:
int size = MyEnum.values().length
答案 3 :(得分:3)
enum.values()方法由Java编译器添加,API中未提及。
答案 4 :(得分:2)
为了避免每次都调用values()方法:
public class EnumTest {
enum WORKDAYS {
Monday,
Tuesday,
Wednesday,
Thursday,
Friday;
public static final int size;
static {
size = values().length;
}
}
public static void main(String[] args) {
System.out.println(WORKDAYS.size); // 5
}
}