List와 List는 서로 상속 관계가 아니다. Java는 와일드카드로 서로 다른 Generic 타입을 안전하게 함께 다루며, 타입 소거 방식 때문에 런타임 타입 검사와 배열 생성 등에 제약을 둔다. 이 글에서는 extends와 super를 선택하는 기준인 PECS부터 Generic의 주요 제약까지 살펴본다.들어가며Generic 클래스의 는 사용할 타입을 나중에 정하기 위한 타입 매개변수다. 예를 들어 Box에서는 T가 String이 되고, 컴파일러가 다른 타입의 저장을 막는다. 기본 문법만으로 하나의 정확한 타입을 다루는 코드는 작성할 수 있다. 하지만 List와 List을 모두 받는 합계 메서드처럼 여러 관련 타입을 함께 다루려면 타입 사이의 관계를 더 이해해야 한다.목차Generic 타입은 공변하지..