Item35. Enum type ordinal method 대신 member field를 사용하라
Enum type의 ordinal method
1 | /** |
대부분 열거타입 상수는 하나의 정수값과 대응되는데, ordinal method는 특정 상수가 그 열거타입에서 몇번쨰 위치인지를 반환하는 method이다. 예를 들면 아래와 같이 합주단 종류 enum type내에서 몇번쨰 위치하고 있는지 알아낼때 사용한다.
1 | public enum Ensemble { |
ordinal method의 단점
- 상수의 위치를 변경하면 해당 ordinal()출력값도 당연히 바뀐다.
- 이미 사용중인 상수와 값이 동일한 상수는 추가할 수 없다.
- 높은 상수 위치 값이 필요한 상황에서 값을 중간에 비워둘수가 없다.
–> 중간에 dummy 상수를 추가해주어야 작동한다.
전반적으로 유지보수성이 매우 떨어진다.
ordinal method의 대체방안
해당 상수의 위치값을 활용하고 싶으면, ordinal method 대신에 위치값을 멤버 필드로 가지고 반환하자.
1 | public enum Ensemble { |