Chapter6 열거 타입과 애너테이션
1. int 상수 대신 열거 타입(enum)을 사용하라
- 단순히 int 상수를 private staic final로 선언하여 나열하는 것은 가독성이 좋지 않고, 안전하지 않으므로 안전하고, 다수의 기능이 있는 열거타입을 사용해야한다.
2. ordinal 메서드 대신 인스턴스 필드를 사용하라
ordinal()
을 사용하면 해당 열거 타입이 몇 번째에 위치해 있는지를 알려 주는데, 이러한 방식은 새로운 열거 타입이 생겨 순서가 바뀌면 프로그램의 동작에 오류가 생길 수 있기 때문에 지양해야 한다.- 대신 인스턴스 필드를 생성하여 사용하면 된다.
3. 비트 필드 대신 EnumSet을 사용하라
열거할 수 있는 타입을 한데 모아 사용하려면 비트 필드보다는 EnumSet을 사용해야 한다.
- 비트 필드는 정수 열거 상수의 단점을 그대로 가지며, 모든 원소를 순회하기가 어렵다.
public class Text { public enum Style { BOLD, ITALIC, UNDERLINE }; public void applyStyles(Set<Style> styles) { //EnumSet //... } }
4. ordinal 인덱싱 대신 EnumMap을 사용하라
- 배열의 인덱스를 얻기 위해 ordinal을 쓰는 것은 일반적으로 좋지 않다.
5. 확장할 수 있는 열거 타입이 필요하면 인터페이스를 사용하라
- 열거 타입이 인터페이스를 구현을 하면 인터페이스의 변경을 통해 열거 타입을 확장할 수 있다.
6. 명명 패턴보다 애너테이션을 사용하라
7. @Overide
애너테이션을 일관되게 사용하라
※ 참고
- 이펙티브 자바 - 조슈아 블로크
'BOOK > [이펙티브 자바]' 카테고리의 다른 글
[Effective Java] Chapter8 메서드 (0) | 2022.03.22 |
---|---|
[Effective Java] Chapter7 람다와 스트림 (0) | 2022.03.17 |
[Effective Java] Chapter5 제네릭 (0) | 2022.02.15 |
[Effective Java] Chapter4 클래스와 인터페이스 (0) | 2022.02.10 |
[Effective Java] Chapter3 모든 객체의 공통 메서드 (0) | 2022.02.08 |