programing

Java에서 모든 열거값을 가져오려면 어떻게 해야 합니까?

prostudy 2022. 9. 13. 21:42
반응형

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

반응형