[Effective Java 3/e] 아이템 35 - odinal 메서드 대신 인스턴스 필드를 사용하라


아이템 35 - odinal 메서드 대신 인스턴스 필드를 사용하라

odinal

  • 해당 상수가 열거 타입에서 몇 번째 위치인지를 반환하는 메서드
  • odinal를 사용하여 순서를 가져오는 경우 상수 선언 순서를 바꾸는 순간 오동작 하며 유지보수가 힘듦
    • 열거 타입 상수에 연결된 값은 ordinal 메서드로 얻지 말고, 인스턴스 필드에 저장하자.
public enum Ensemble {
  SOLO(1), DUET(2), OCTET(8), TRIPLE_QUARTER(12);
  
  private final int numberOfMusicians;
  Ensemble(int size) { this.numberOfMusicians = size; }
  public int numberOfMusicians() { return numberOfMusicians; }
}