답변:
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
여기서 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);
}