CH10-4 · MODEL

타입 소거와 런타임 한계: 먼저 구분할 경계

Java 제네릭의 타입 인자는 대부분 컴파일 뒤 소거되어 런타임에는 원래 타입 정보가 직접 남지 않습니다.

핵심 경계

T는 보통 첫 경계 타입으로 소거된다

경계가 없으면 Object, T extends Number면 Number로 바뀝니다.

핵심 경계

제네릭 배열은 직접 만들 수 없다

new T[10]이나 new List[10]은 런타임 배열 검사가 소거된 원소 타입을 확인할 수 없어 금지됩니다.

핵심 경계

instanceof는 재구체화 가능한 타입만 검사한다

value instanceof List는 가능하지만 List인지 직접 검사할 수 없습니다.

핵심 경계 경계가 없으면 Object, T extends Number면 Number로 바뀝니다.