| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | ||||
| 4 | 5 | 6 | 7 | 8 | 9 | 10 |
| 11 | 12 | 13 | 14 | 15 | 16 | 17 |
| 18 | 19 | 20 | 21 | 22 | 23 | 24 |
| 25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 제네릭 타입
- 상속
- annotation processor
- System.out
- 프리미티브 타입
- 스파르타코딩클럽
- 바운디드 타입
- Study Halle
- Effective JAVA
- auto.create.topics.enable
- 함수형 인터페이스
- 익명 클래스
- 람다식
- 항해99
- raw 타입
- 자바스터디
- Java
- 합병 정렬
- System.err
- github api
- Switch Expressions
- 접근지시자
- 로컬 클래스
- 정렬
- System.in
- 브릿지 메소드
- junit 5
- 제네릭 와일드 카드
- 자바할래
- public 필드
Archives
- Today
- Total
코딩하는 털보
ITEM 35 enum ordinal 메서드 대신 인스턴스 필드 사용 본문
package me.rockintuna.effectivejava.item;
/*
enum의 ordinal 메서드 대신 인스턴스 필드를 사용하라
*/
public class Item35 {
enum DAY {
MONDAY,
TUESDAY,
WEDNESDAY,
THURSDAY,
FRIDAY,
SATURDAY,
SUNDAY
}
public static void main(String[] args) {
/*
ordinal() 메서드는 정의된 열거 타입 상수의 순서를 리턴한다.
enum의 ordinal 메서드에 의미를 두어 사용하는 건 좋지 않다.
- enum 상수의 순서가 바뀌면 ordinal 결과도 바뀌기 때문에 오류가 발생할 수 있다.
- 다른 상수에서 동일한 정수값을 가지게 할 수 없다.
- 정수값은 1씩 증가해야하며
- 정수값을 중간에 띄우려면 더미 상수를 만들어야 한다.
이런 단점들이 있으니 ordinal 대신 인스턴스 필드에 정수값을 저장하는 것이 옳다.
ordinal은 그냥 사용하지 말자.
*/
int ordinal = DAY.MONDAY.ordinal();
System.out.println(ordinal); // 0
}
}
Comments