2012-10-18 2 views
3

내 프로젝트에는 선언 된 열거 형이 몇 개 있습니다. 이 모든 것을 반복하고 각 열거 형의 모든 값을 반복하는 메서드를 만들고 싶습니다. 이 열거 형과내 프로젝트의 모든 열거 형을 찾으십시오.

예 :

public enum Mood { 
    GOOD, BAD; 
} 

public enum Weather { 
    WET, DRY; 
} 

내가 각각 열거하고 그 값을 통해 루프와 줄에 각각 인쇄 한 경우, 프로그램이

GOOD 
BAD 
WET 
DRY 

순서를 인쇄 할 것은 중요하지 않습니다. ..

새 열거 형을 추가하면 코드를 변경하지 않고도 인쇄해야합니다. 열거 형 패키지의 위치를 ​​알 수 없습니다. 오직 루트 패키지.

+0

를 사용하여 모든 클래스 값을받을 수 있나요? –

+0

정확 하 게, 내 자신 만. 그들은 모두 루트 패키지 밑에 위치 할 것입니다. –

+0

나는 그것이 루트의 하위 패키지 일 수 있다는 것을 의미한다고 생각했습니다. 루트 패키지를 사용하는 것은 오랜 세월 동안 권장되지 않았습니다. –

답변

6

Reflections 라이브러리가 도움이 될 것입니다.

당신은 당신이뿐만 아니라 JVM에서`enums`을 원하지 않는 가정 Enum를 구현하는 각 클래스를 검색하고 clazz.getEnumConstants()

+0

각 열거 형마다 Java 파일이있는 경우에만 작동합니다. 다른 클래스의 내부에서 선언 된 열거 형은 나열되지 않습니다. –

+0

잘 알고 있습니다. 다행히도 별도의 자바 파일에 모든 열거 형을 가지고 있습니다. –

+0

나는 반사를 좋아하지만 완전한 프로젝트를 위해 모든 enumConstants를 찾을 수있는 방법이 있습니까? 나는 그것을 할 수있는 방법이있을 것이라고 확신합니다. 어떻게 확신 할 수 있습니까? – Rachel