포스팅 썸네일 이미지

프로그래밍/Effective Java

[Effective Java 3/E] ITEM 38. 확장할 수 있는 열거 타입이 필요하면 인터페이스를 사용하라.

*알림 : * Effective Java 3판은 Java 9까지 도입된 언어적 기능을 중심으로 서술되어 있습니다. 10버젼 이후의 Java 개발을 하시는 분들은 우회적인 접근법 대신 Java 언어 내 새로 도입된 기능이 더 간결하고 좋을 수 있습니다. 해당 포스팅은 SSAFY 내 책읽기 스터디의 활동을 통해 작성된 포스팅입니다. https://github.com/kjsu0209/JavaBook https://medium.com/javabook kjsu0209/JavaBook 책읽기 스터디. Contribute to kjsu0209/JavaBook development by creating an account on GitHub. github.com JavaBook – Medium Documentation ..

2021.03.28 게시됨

 포스팅 썸네일 이미지

프로그래밍/Effective Java

[Effective Java 3/E] ITEM 35. ordinal 메서드 대신 인스턴스 필드를 사용하라

Enum 클래스는 해당 상수가 Enum 타입에서 몇 번째 상수인지 리턴하는 ordinal 메서드를 제공한다. 그러나 사용하지 않아야 한다. 예제1 : 합주단의 종류 public enum Ensemble { SOLO, DUET, TRIO, QUARTET, QUINTET, SEXTET, SEPTET, OCTET, NONET, DECTET; public int numberOfMusicians() { return ordinal() + 1; } } 쓰지 말아야 하는 이유 상수 선언 순서를 바꾸면 ordinal()은 오동작한다. 선언 순서에 기반해 동작하는 ordinal() 입장에선 당연하다. 이미 사용중인 정수와 똑같은 값을 가지는 상수는 만들 수 없다. 8중주는 8명이서 연주한다(octet). 그러나 복4중주(..

2021.03.28 게시됨

프로그래밍/Effective Java

[Effective Java 3/E] ITEM 34. int 상수 대신 열거 타입을 사용하라

열거(이하 Enum) 타입이 도입되기 전에는 상수를 정의할 때에는 정수 열거 패턴(int enum pattern)을 사용했다. //DO NOT public static final int APPLE_FUJI = 0; public static final int APPLE_PIPPIN = 1; public static final int APPLE_GRANNY_SMITH = 2; public static final int ORANGE_NAVEL = 0; public static final int ORANGE_TEMPLE = 1; public static final int ORANGE_BLOOD = 2; 쓰지 말아야 할 이유 이 정수 열거 패턴은 type safe를 보장할 수 없다.(APPLE_FUJI==ORAN..

2021.03.28 게시됨