모든 enum에는 ordinal이라는 메서드가 있는데, enum 자료형 안에서 enum 상수의 위치를 나타내는 정수값을 반환한다. 정말 되도록 이면 쓰지마라. 아래의 예제를 보자.


 위의 코드는 유지보수 관점에서 보면 정말 안좋은 코드다. 상수 순서를 변경하는 순간 numberOfMusicians 메서드는 깨지고 만다. 게다가 이미 사용한 정수에 값에 대응되는 새로운 enum 상수를 정의하는 것은 아예 불가능하다.  enum 상수에 연계되는 값을 ordinal을 사용해 표현하지 말고, 그런 값이 필요하다면 그 대신 객체 필드에 저장해야 한다는 것.


 

+ Recent posts