ordinal을 인덱싱으로 사용하지 말자
•
종종 배열이나 리스트에서 원소를 꺼낼 때나 넣을 때 ordinal 메서드를 통해 인덱스를 얻어 사용하는 코드들이 있다.
•
이렇게 인덱스를 얻어 사용하는 주된 목적은 배열에 사용하기 위함인데, 배열은 각 인덱스의 의미를 모르니 출력 결과에 직접 레이블을 달아야한다. 또 다른 문제점은 정확한 정수값을 사용한다는 것을 사용자가 직접 보증해야 한다는 것이다.
EnumMap을 사용하자
•
열거 타입을 ordinal 메서드와 배열로 매핑하지 않고 EnumMap을 사용하면, 형변환을 안전하게 할 수 있고 맵의 키인 열거 타입이 그 자체로 출력용 문자열을 제공하니 출력 결과에 직접 레이블을 달 필요가 없다. 또한 EnumMap 내부에 배열이 있어 실제 배열을 사용하는 것에 비해 성능이 부족하지 않다.