[EffectiveJava] item35 - ordinal 메서드 대신 인스턴스 필드를 사용하라
01 May 2023 EffectiveJava대부분의 열거 타입 상수는 자연스럽게 하나의 정숫값에 대응된다.
그리고 모든 열거 타입은 해당 상수가 그 열거 타입에서 몇 번째 위치인지를 반환하는 ordinal이라는 메서드를 제공한다.
@Test void ordinal_Test() { for (Operation op...
대부분의 열거 타입 상수는 자연스럽게 하나의 정숫값에 대응된다.
그리고 모든 열거 타입은 해당 상수가 그 열거 타입에서 몇 번째 위치인지를 반환하는 ordinal이라는 메서드를 제공한다.
@Test void ordinal_Test() { for (Operation op...
열거 타입은 일정 개수의 상수 값을 정의한 다음, 그외의 값은 허용하지 않는 타입이다.
열거 타입(Enum Type)은 Java5 이후에 생긴 기능으로 그 이전에는 int나 String의 상수 값을 이용해 정수 열거 패턴을 구현했다.
public static final int APPLE_FUJI...
제네릭은 Set\<E\>
, Map<K,V>
등의 컬렉션과 ThreadLocal<T>, AtomicReference<T> 등의 단일원소 컨테이너에도 흔히 쓰인다. 이런 모든 쓰임에서 매개변수화 되는 대상은 (원소가 아닌) 컨테이너 자신이다. 따라서 하나의 컨테이너에서 매개변수화할 수 있는 타입의 수가 제한된다.
하지만 더 유연한 수단이 필요할때가 종종있다.
컨테이너 대신 키를 매개변수화한...
먼저 가변인수 메서드에 대해 가볍게 정리를 하고 넘어가자
가변인수(varargs) 메서드란? 아래의 메소드와 같이 매개변수를 n개 이상으로 받는 메서드를 말한다.
public List<String> getStringList(String... words) { return Arrays<span...
Comparable<T>
interface는 구현한 객체에 정렬기준을 정해 Array.sort()나 Collections.sort()를 통해 정렬을 했을때, Comparable<T>
를 구현한 compareTo를 기준으로 객체의 순서를 정렬해주는 interface이다.
아래의 Node
객체는 단순한 String type의 name을 필드로 가지고 있는 객체이다.
한번 Comparable<T>
를 구현해 한글, 영어, 숫자 순으로...