문서의 선택한 두 판 사이의 차이를 보여줍니다.
양쪽 이전 판 이전 판 다음 판 | 이전 판 마지막 판 양쪽 다음 판 | ||
java:enum [2016/03/21 23:26] kwon37xi [static loading with EnumMap] |
java:enum [2016/03/21 23:30] kwon37xi [static loading with EnumMap] |
||
---|---|---|---|
줄 59: | 줄 59: | ||
A, B, Y, Z; | A, B, Y, Z; | ||
+ | // 외부에서 접근, 변경 불가능하도록 private으로 선언. | ||
private static final Map< | private static final Map< | ||
- | static | + | static { |
- | | + | |
opposites = new EnumMap<> | opposites = new EnumMap<> | ||
opposites.put(A, | opposites.put(A, | ||
줄 71: | 줄 71: | ||
// 모두 올바르게 값 설정이 되었는지 검증 | // 모두 올바르게 값 설정이 되었는지 검증 | ||
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: | 줄 77: | ||
} | } | ||
- | public Flippable flip() | + | public Flippable flip() { |
- | | + | |
return opposites.get(this); | return opposites.get(this); | ||
} | } |