[아이템 29] 이왕이면 제네릭 타입으로 만들라

일반 클래스를 제네릭 클래스로 만드는 방법

  • 클래스 선언에 타입 매개 변수를 추가
  • 제네릭 배열 생성을 금지하는 제약 우회 :  Object 배열을 생성한 다음 제네릭 배열로 형변환 - 비검사 형변환이 안전하다면 @SuppressWarnings 애너테이션으로 해당 경고를 숨긴다 -> 해당 방식을 제일 많이 선호
  • elements 필드 타입을 E[]에서 Object[]로 바꾸는 것이다.

대다수의 제네릭 타입은 타입 매개변수에 아무런 제약을 두지 않는다. 단 기본 타입은 사용할 수 없어 박싱된 기본 타입을 사용해 우회할 수 있다.

 

뒷 장에서 알아볼 내용

런타임 타입이 컴파일타임 타입과 달라 힙 오염(heap pollution : 아이템 32)

반응형