반응형
Java에서 모든 열거값을 가져오려면 어떻게 해야 합니까?
나는 이 문제에 부딪혔는데, 나는 실체를 모르고 있었다.enum
가능한 값을 반복해야 합니다.
if (value instanceof Enum){
Enum enumValue = (Enum)value;
}
가능한 값을 enumValue에서 추출하는 방법을 알고 계십니까?
열거형 요소를 가져오기 위해 호출합니다(또는 열거형 클래스가 아닌 경우 null을 클릭합니다.
Object[] possibleValues = enumValue.getDeclaringClass().getEnumConstants();
YourEnumClass[] yourEnums = YourEnumClass.class.getEnumConstants();
또는
YourEnumClass[] yourEnums = YourEnumClass.values();
값 열거법
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
Enum
는 다음과 같습니다.Class
특히 입력되어 있습니다.현재 코드는 Enum이 어떤 유형의 Enum에 속하는지 지정하지 않고 Enum인지만 확인합니다.
열거형태를지정하지않았으므로반사를사용하여 열거형값목록이무엇인지알아야합니다.
다음과 같이 할 수 있습니다.
enumValue.getDeclaringClass().getEnumConstants()
이렇게 하면 Enum 객체의 배열이 반환되며 각각 사용 가능한 옵션 중 하나가 됩니다.
... 또는 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);
}
모든 값을 목록으로 가져오려는 사용자는 이 작업을 수행할 수 있습니다.
Arrays.asList(YouEnumClass.values())
언급URL : https://stackoverflow.com/questions/2269803/how-to-get-all-enum-values-in-java
반응형
'programing' 카테고리의 다른 글
경고: mysqli_connect(): (HY000/1045):사용자 'username'@'localhost'에 대한 액세스가 거부되었습니다(암호: YES 사용). (0) | 2022.09.13 |
---|---|
'#' 링크를 클릭했을 때 페이지 맨 위로 이동하지 않도록 하려면 어떻게 해야 합니까? (0) | 2022.09.13 |
팬더 적용 함수에서 행의 색인을 얻는 것 (0) | 2022.09.13 |
왼쪽 외부 결합에서 반환된 기본 Null 값 바꾸기 (0) | 2022.09.13 |
PyCharm에서 최대 회선 길이를 설정하려면 어떻게 해야 합니까? (0) | 2022.09.13 |