Item 37 - ordinal 인덱싱 대신 EnumMap을 사용하라
ordinal 인덱싱 대신 EnumMap을 사용하라
Intro
/**
* 식물을 나타내는 클래스
*/
public class Plant {
// 식물의 생애 주기를 관리하는 열거 타입
enum LifeCycle {
ANNUAL, // 한해살이
PERENNIAL, // 여러해살이
BIENNIAL // 두해살이
}
final String name;
final LifeCycle lifeCycle;
Plant(String name, LifeCycle lifeCycle) {
this.name = name;
this.lifeCycle = lifeCycle;
}
@Override
public String toString() {
return name;
}
}해결책
두 열거 타입의 값들을 매핑하느라 ordinal을 (두 번이나) 쓴 배열들의 배열의 상황
EnumMap으로 해결하기
새로운 상태를 추가하는 경우
배열로 만든 코드를 수정하는 경우
EnumMap 버전으로 코드를 수정하는 경우
정리
Last updated