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 메서드는 절대 사용하지말자!
'이펙티브 자바' 카테고리의 다른 글
[이펙티브 자바] 아이템 37. ordinal 인덱싱 대신 EnumMap을 사용하라 (0) | 2024.04.06 |
---|---|
[이펙티브 자바] 아이템 36. 비트 필드 대신 EnumSet을 사용하라 (0) | 2024.04.05 |
[이펙티브 자바] 아이템 34. int 상수 대신 열거 타입을 사용하라 (0) | 2024.04.04 |
[이펙티브 자바] 아이템 33. 타입 안전 이종 컨테이너를 고려하라 (0) | 2024.04.03 |
[이펙티브 자바] 아이템 32. 제네릭과 가변인수를 함께 쓸 때는 신중하라 (0) | 2024.04.01 |