문서의 선택한 두 판 사이의 차이를 보여줍니다.
다음 판 | 이전 판 다음 판 양쪽 다음 판 | ||
java:enum [2016/03/21 23:18] kwon37xi 만듦 |
java:enum [2016/03/21 23:27] kwon37xi [static loading with EnumMap] |
||
---|---|---|---|
줄 61: | 줄 61: | ||
private static final Map< | private static final Map< | ||
- | static | + | static { |
- | | + | opposites = new EnumMap<> |
- | opposites = new EnumMap<Flippable, Flippable> | + | |
opposites.put(A, | opposites.put(A, | ||
opposites.put(B, | opposites.put(B, | ||
줄 71: | 줄 70: | ||
// 모두 올바르게 값 설정이 되었는지 검증 | // 모두 올바르게 값 설정이 되었는지 검증 | ||
for (Flippable f : Flippable.values()) { | for (Flippable f : Flippable.values()) { | ||
- | if (f.flip().flip() != f) | + | if (f.flip().flip() != f) { |
- | | + | |
throw new IllegalStateException(" | throw new IllegalStateException(" | ||
} | } | ||
줄 78: | 줄 76: | ||
} | } | ||
- | public Flippable flip() | + | public Flippable flip() { |
- | | + | |
return opposites.get(this); | return opposites.get(this); | ||
} | } | ||
} | } | ||
</ | </ | ||
+ | |||
+ | ==== 문자열 사용 ==== | ||
+ | 생성자에서 enum이 아닌 enum을 나타내는 문자열을 받아서 나중에 메소드 호출시 이것을 enum 값으로 변경해주는 방법도 있다. 별로 추천하고 싶지 않음. | ||
+ | |||
+ |