개발로그

Item 32 - 제네릭과 가변인수를 함께 쓸 때는 신중하라

가변인수와 제네릭 가변인수 메서드와 제네릭은 자바 5 때 함께 추가되었지만 잘 어우러지지 않는다. 🙅 가변인수 메서드 구현방식의 허점 🤔 가변 인수 메서드를 호출하면 가변인수를 담기 위한 배열이 자동으로 하나 만들어진다. 이 배열을 내부로 감췄어야 했는데, 클라이언트에 노출해버려서 제네릭이나 매개변수화 타입이 포함되면 컴파일 경고...

Item 30 - 이왕이면 제네릭 메서드로 만들라

제네릭 메서드 메서드도 제네릭으로 만들 수 있다. 매개변수화 타입을 받는 정적 유틸리티 메서드는 보통 제네릭 메서드이다. ex. Collections의 binarySearch, sort 메서드 // 메서드 선언에서 입력 2개와 반환 1개의 원소 타입을 타입 매개변수로 명시 // (타입 매개변수들을 선언하는) 타입 매개변수 목록은 메서드...

Item 26 - 로 타입은 사용하지 말라

클래스와 인터페이스 선언에 타입 매개변수가 쓰이면, 제네릭 클래스 혹은 제네릭 인터페이스라 한다. 또 이들을 통틀어 제네릭 타입이라고 한다. 로 타입(raw type) 제네릭 타입을 하나 정의하면 그에 딸린 로 타입(raw type)도 함께 정의된다. 제네릭 타입에서 타입 매개변수를 사용하지 않을 때를 로 타입이라고 한다. ...