How to get all enum values in Java?
我遇到了这个问题,我不知道实际的
1 2 3 | if (value instanceof Enum){ Enum enumValue = (Enum)value; } |
有什么办法可以从EnumValue中提取出它的可能值吗?
1 |
1 | YourEnumClass[] yourEnums = YourEnumClass.class.getEnumConstants(); |
或
1 | YourEnumClass[] yourEnums = YourEnumClass.values(); |
由于尚未指定枚举的类型,因此必须使用反射来确定枚举值列表是什么。
你可以这样做:
1 | enumValue.getDeclaringClass().getEnumConstants() |
这将返回一个枚举对象数组,每个对象都是可用选项之一。
枚举的值方法
返回所有枚举实例的enum.values()方法。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | public class EnumTest { private enum Currency { PENNY("1 rs"), NICKLE("5 rs"), DIME("10 rs"), QUARTER("25 rs"); private String value; private Currency(String brand) { this.value = brand; } @Override public String toString() { return value; } } public static void main(String args[]) { Currency[] currencies = Currency.values(); // enum name using name method // enum to String using toString() method for (Currency currency : currencies) { System.out.printf("[ Currency : %s, Value : %s ]%n",currency.name(),currency); } } } |
http://javaexplorer03.blogspot.in/2015/10/name-and-values-method-of-enum.html
…还是myenum.values()?还是我错过了什么?