대부분의 열거 타입 상수는 하나의 정숫값에 대응 (0부터 할당됨)
enum Direction {
TOP, RIGHT, BOTTOM, LEFT
}
public static void main(String[] args) {
if (Direction.BOTTOM.ordinal() == 2) {
System.out.println("아래");
}
}
모든 열거 타입은 해당 상수가 그 열거 타입에서 몇 번째 위치인지를 반환하는 ordinal이라는 메서드를 제공
@RequiredArgsConstructor
@Getter
enum Direction {
TOP(0), RIGHT(1), BOTTOM(2), LEFT(3);
private final int value;
}
public static void main(String[] args) {
if (Direction.BOTTOM.getValue() == 2) {
System.out.println("아래");
}
}
열거 타입 상수에 연결된 값은 ordinal 메서드로 얻지 말고, 인스턴스 필드에 저장하자.
대부분의 프로그래머는 ordinal 메서드를 쓸 일이 없다. EnumSet, EnumMap 등 열거 타입 기반 자료구조에 쓸 목적으로 설계 (contains, add, remove)
'effective java' 카테고리의 다른 글
Item 53. 가변인수는 신중히 사용하라 (0) | 2022.03.06 |
---|---|
Item 52. 다중정의는 신중히 사용하라 (0) | 2022.03.06 |
Item46. 스트림에서는 부작용 없는 함수를 사용하라 (0) | 2022.03.06 |
Item32. 제네릭과 가변인수를 함께 쓸 때는 신중하라 (0) | 2022.01.23 |
댓글