program story

Java에서 모든 열거 형 값을 얻는 방법은 무엇입니까?

inputbox 2020. 9. 20. 09:46
반응형

Java에서 모든 열거 형 값을 얻는 방법은 무엇입니까?


enum가능한 값을 반복해야하는 실제 유형 을 알지 못한 채이 문제를 발견했습니다 .

if (value instanceof Enum){
   Enum enumValue = (Enum)value;
}

enumValue에서 가능한 값을 추출하는 방법에 대한 아이디어가 있습니까?


Object[] possibleValues = enumValue.getDeclaringClass().getEnumConstants();

YourEnumClass[] yourEnums = YourEnumClass.class.getEnumConstants();

또는

YourEnumClass[] yourEnums = YourEnumClass.values();

Enums는 Class입력된다는 점에서 es 와 같습니다 . 현재 코드는 어떤 유형의 Enum인지 지정하지 않고 Enum인지 확인합니다.

열거 형의 유형을 지정하지 않았기 때문에 열거 형 값 목록이 무엇인지 알아 내기 위해 리플렉션을 사용해야합니다.

다음과 같이 할 수 있습니다.

enumValue.getDeclaringClass().getEnumConstants() 

이것은 각각 사용 가능한 옵션 중 하나 인 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 ​​()? 아니면 내가 뭔가를 놓치고 있습니까?


Here, Role is an enum which contains the following values [ADMIN, USER, OTHER].

List<Role> roleList = Arrays.asList(Role.values());
roleList.forEach(role -> {
    System.out.println(role);
    });

참고URL : https://stackoverflow.com/questions/2269803/how-to-get-all-enum-values-in-java

반응형