[아이템 28] 배열보다는 리스트를 사용하라
배열은 공변이고 제네릭은 불공변이다. 이는 Sub가 Super의 하위 타입이면 배열 Sub[]도 Super[]의 하위 타입이 된다. 배열은 실체화(reify)된다. 제네릭 배열은 런타임 시 ClassCastException이 발생할 수 있어 지원하지 않는다. E, List, List 같은 타입을 실체화 불가 타입 - 런타임에는 컴파일타임보다 타입 정보를 적게 가지는 타입 제네릭 컬렉션에서는 자신의 원소 타입을 담은 배열을 반환하는게 보통은 불가능하다. 또한 제네릭 타입과 가변인수 메서드(varargs method, 아이템53)를 함께 쓰면 해석하기 어려운 경고 메시지를 받게 된다. 배열로 형변환할 때 제네릭 배열 생성 오류나 비검사 형변환 경고가 뜨는 경우 대부분은 배열인 E[]대신 컬렉션인 List를 ..