언어/JAVA
[Effective Java] ordinal 인덱싱 대신 EnumMap을 사용하라
아이템 37 : ordinal 인덱싱 대신 EnumMap을 사용하라 이따금 배열이나 리스트에서 원소를 꺼낼 때 ordinal 메서드로 인덱스를 얻는 코드가 있다. ordinal()을 배열 인덱스로 사용할 경우 동작은 하지만 문제가 발생할 것이다. 배열은 제네릭과 호환되지 않으니 비검사 형번환을 수행해야 하고 깔끔히 컴파일되지 않을 것이다. 이를 해결할 수 있는 방안이 있다. 여기서 배열은 실질적으로 열거 타입 상수를 값으로 매핑하는 일을 한다. 그러니 Map을 사용할 수 있다. 열거 타입을 키로 사용하도록 설계된 아주 빠른 Map 구현체가 존재한다. 바로 EnumMap이다. EnumMap을 사용하면 ordinal을 쓸때보다 짧고 명료하고 안전하다. 안전하지 않은 형변환은 쓰지 않고, 맵의 키인 열거 타입..