매개변수 타입

불공변성(invariant)

서로 다른 타입 Type1과 Type2가 있을 때, List<Type1>은 List<Type2>의 하위 타입도 상위 타입도 아니다.

⇒ List<String> 은 List<Object>의 하위타입이 아니다.

매개변수 타입은 왜 불공변인가?

⇒ 서로 다른 타입의 매개변수화 타입( parameterized type / ex. List<String> )은 “리스코프 치환 원칙”에 어긋난다.

불공변의 한계