728x90
1. ordinal 메서드를 잘못쓸 때
ordinal 메서드 : 해당 상수가 그 열거 타입에서 몇 번째 위치인지 반환하는 메서드
- 상수 선언 순서를 바꾸면 오동작한다.
- 이미 사용중인 정수와 값이 같은 상수는 추가할 수 없다.
- 중간에 값을 비울 수 없다 : 값을 비우기 위한 더미(dummy) 상수 추가
2. 해결 방법
열거 타입 상수에 연결 된 값을 ordinal 메서드로 얻지 말고 인스턴스 필드에 저장하라.
3. Enum API 문서
이 메서드는 EnumSet과 EnumMap과 같이 열거 타입 기반의 범용 자료 구조에 쓸 목적으로 설계 되었다.
'Dev Book Review > Effective Java' 카테고리의 다른 글
[Effective Java] item 37. ordinal 인덱싱 대신 EnumMap을 사용하라 (1) | 2020.06.27 |
---|---|
[Effective Java] item 36. 비트 필드 대신 EnumSet을 사용하라 (0) | 2020.06.27 |
[Effective Java] item 34. int 상수 대신 열거 타입을 사용하라 (2) | 2020.06.27 |
[Effective Java] Chapter 5: 제네릭 (0) | 2020.05.19 |
[Effective Java] item33. 타입 안전 이종 컨테이너를 고려하라 (0) | 2020.05.19 |