Java 제네릭 및 공분산: 제한 이해
제네릭의 공분산은 하위 유형이 상위 유형을 위반하지 않고 대체될 수 있는 능력을 의미합니다. 유형 안전. 그러나 Java에서 제네릭은 공변적이지 않습니다. 즉, 하위 유형을 상위 유형 변수에 할당할 수 없습니다.
이 개념을 설명하려면 다음 코드 조각을 고려하세요.
List<Integer> li = new ArrayList<Integer>(); List<Number> ln = li; // illegal ln.add(new Float(3.1415));
여기서 ln은 ln이 li과 동일한 목록을 참조한다는 의미인 li로 별칭이 지정됩니다. 그러나 ln은 List
공분산이 허용되는 경우 위 코드는 적법하지만 유형 안전성을 위반하게 됩니다. List
따라서 유형 안전성을 유지하기 위해 Java 제네릭은 공변적이지 않습니다. 이러한 제한은 일반 컨텍스트에서 하위 유형을 상위 유형과 상호 교환적으로 사용할 수 없도록 하여 잠재적인 유형 오류를 방지합니다.
위 내용은 Java Generics가 공변적이지 않은 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!