공변 썸네일형 리스트형 JVM 언어 의 공변 1. 공변이란? 제네릭에서는 3가지 공변 성질을 제공한다. 공변(Variance) : A가 B의 하위 타입일 때, T 가 T의 하위 타입이면 T가 공변의 성질을 가지고 있다고 말한다. 반공변(Contravariance) : A가 B의 하위 타입일 떄, T가 T 의 하위 타입이면 T가 반공변의 성질을 가지고 있다고 말한다. 무공변(Invariance) A가 B의 하위 타입일 때, T와 T간의 아무 관계도 없다면 무공변이라고 말한다. 이러한 공변, 반공변, 무공변으로 메소드의 인자로 들어오는 파라미터의 타입에 제한을 걸수 있다. 공변의 경우 Java에서는 extends, Kotlin에서는 out이라는 키워드를 사용한다.(Producer패턴 : 해당 타입을 생산하는 패턴에 사용) 반공변의 경우 Java에서는 .. 더보기 이전 1 다음