이펙티브 자바
[이펙티브 자바] 아이템 35. ordinal 메서드 대신 인스턴스 필드를 사용하라
stdio.han
2024. 4. 5. 02:13

ordinal() 메서드 : 열거 상수가 선언된 순서에 따라 0부터 시작하는 정수 값을 반환해준다. 그러나 이 값은 열거 상수의 순서를 나타내는 데에만 사용되며, 일반적으로 이 값을 외부에서 직접 참조하는 것은 권장되지 않는다. 대신 열거 상수마다 고유한 의미있는 값을 갖는 인스턴스 필드를 추가하는 것이 좋다.
열거 상수마다 고유한 의미있는 값을 갖는 인스턴스 필드를 추가한 예시 코드 :
enum Season {
SPRING("March", "April", "May"),
SUMMER("June", "July", "August"),
AUTUMN("September", "October", "November"),
WINTER("December", "January", "February");
private final String[] months;
Season(String... months) {
this.months = months;
}
public String[] getMonths() {
return months;
}
}
public class Main {
public static void main(String[] args) {
Season currentSeason = Season.SUMMER;
String[] months = currentSeason.getMonths();
System.out.println("Months in summer: " + Arrays.toString(months)); // 출력: Months in summer: [June, July, August]
}
}
결론 : ordinal 메서드는 절대 사용하지말자!