回答:
Object[] possibleValues = enumValue.getDeclaringClass().getEnumConstants();
getClass()
にenum
オブジェクトを返すことができるサブタイプのenum
(たとえば、場合種類自体をenum
定数からメソッドをオーバーライドenum
タイプ)。ここでは、その定数を宣言しgetDeclaringClass()
たenum
型を返します。
列挙型の値メソッド
すべてのenumインスタンスを返すenum.values()メソッド。
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()?それとも何か不足していますか?
ここで、Roleは次の値を含む列挙型です[ADMIN、USER、OTHER]。
List<Role> roleList = Arrays.asList(Role.values());
roleList.forEach(role -> {
System.out.println(role);
});
このようにjava.util.EnumSetを使用することもできます
@Test
void test(){
Enum aEnum =DayOfWeek.MONDAY;
printAll(aEnum);
}
void printAll(Enum value){
Set allValues = EnumSet.allOf(value.getClass());
System.out.println(allValues);
}