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
-
Enum.values()每次都会分配一个新数组,因此不建议将其用于高调用率(即for循环条件)。 如果需要经常调用该值,则对其进行缓存。
您可以使用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; |
-
length不是数组的方法,它是一个属性字段,因此您可以在不带括号的情况下使用它。
-
@CyrilleKa:感谢您的通知。 更正它。 :)
enum.values()方法是Java编译器添加的,API中未提及。
Enum的values()方法的文档在哪里?
MyEnum.values()将枚举常量作为数组返回。
因此,您可以使用:
1
| int size = MyEnum.values().length |