2016-06-17 5 views
1

일부 디버깅 도구를 사용하고 있습니다. 내가 지금하고있는 일은 테스터에게 Enum 항목 (이름과 사람이 읽을 수있는 값)을 표시 할 GUI 창을 제공하는 것입니다. 볼 수있는 여러 enum이 있기 때문에 기본 대화 상자 클래스를 최대한 일반화하고 싶습니다.열거 형을 변수로 전달하고 사용할 수 있습니까?

또한 이러한 열거 형 중 일부는 공통 인터페이스를 구현합니다. 예 :

public enum DaysOfTheWeek implements CanBeTranslated { ... 

따라서 저는이를 토대로 노력했습니다. 잠시 생각 후,이 변수 생성 : 나는 DaysOfTheWeek.values 같이 entries.values()에 액세스 할 것으로 예상

Class<Enum<? extends CanBeTranslated>> entries; 

을하지만, 아니, 그런 식으로 작동하지 않습니다. 내가하고 싶었던 것은이었다

for(CanBeTranslated entry: myMagicEnumVariable.values()) { 
    // display entry in GUI 
} 

추상적 인 작업을 할 수있는 방법이 변수 내에서 열거 ("없습니다 특정 일"에서와 같이)이 있습니까? 필드 이름을으로 가져 오려면 열거 형에 액세스해야합니다. 중요하지 않습니다.이 경우 값 배열을 사용할 수 있습니다.

이 질문은 내가 전문 자바 개발자와에서 매우 적대적인 태도를 발생

호기심을 실험

  • 쓰기 디버깅 코드
  • 의 관점에서 요구되는 것을 명심하시기 바랍니다

    재미있게 다른 일을하는 것에 대한 이상한 질문을했을 때,이 부인.

답변

3

이것은 당신이 원하는 일을해야합니다

Class<? extends CanBeTranslated> entries = DaysOfTheWeek.class; 
for (CanBeTranslated entry : entries.getEnumConstants()) { 
    // ... 
} 
관련 문제