2014-04-10 4 views
0

컴파일 타임에 enum 값 문자열을 가져 오는 방법은 무엇입니까? EnumType.EnumVar.value()를 수행하면 런타임에 해석됩니다. 나는 이것을 컴파일 타임에 얻어서 Switch Case에서 사용할 수 있기를 바란다.자바 : 컴파일시 열거 형 값?

답변

4

기본적으로 그렇지 않습니다. 스위치에서 열거 형을 사용하려면 문자열 값을 열거 형 값으로 구문 분석 한 다음 스위치를 켜야합니다. 값이 열거 형에 없으면 EnumType.valueOf(String)이 던질 IllegalArgumentException없이 신속하게 변환을 수행 할 수 있도록 Map<String, EnumType>을 만드는 것이 좋습니다.

+0

메모 주셔서 감사합니다. Jon. 그러나 왜 허용되지 않는 이유가 있습니까? 컴파일 타임에 enum의 텍스트 값을 가져 오지 못하게하는 이유는 무엇입니까? – bschandramohan

+2

@ChandraMohan : 언어가별로 도움이되지 않아서 언어가 복잡해 졌기 때문에 의심 스럽습니다. –

+2

@ChandraMohan 날짜 또는 숫자를 나타 내기 위해 String을 사용하지 않아야하는 것처럼 열거 형의 인스턴스를 나타 내기 위해 String을 사용하지 않아야합니다. 열거 형을 사용하십시오. 변환 할 문자열은 외부 소스 (사용자, 파일 등)에서 입력을 가져올 때 수행해야하며 출력을 외부 소스로 보낼 때 문자열 변환에 대한 열거 형을 수행해야합니다. 코드 안에 enum 인스턴스를 사용하십시오. –