와일드카드 일반 유형을 사용하는 Java 컬렉션: 값 추가
와일드카드 일반 유형으로 선언된 Java 컬렉션에 값을 추가하려고 하면, List 확장 상위>인 경우 컴파일러에서 오류가 발생할 수 있습니다. 이는 추가되는 값의 유형(예: 상위 p)이 컬렉션의 예상 유형과 일치하지 않을 때 발생합니다.
이러한 제한은 안전상의 이유로 존재합니다. 다음 예를 고려하십시오.
List<Child> childList = new ArrayList<Child>(); childList.add(new Child()); List<? extends Parent> parentList = childList; parentList.set(0, new Parent()); Child child = childList.get(0); // Unexpected type!
여기서 Child 객체 목록을 정의한 다음 여기에서 와일드카드 일반 목록 parentList를 생성합니다. parentList에서 항목을 안전하게 검색하여 Parent로 변환할 수 있습니다. 그러나 상위 개체를 목록에 할당하려는 시도는 목록 요소의 실제 유형과 호환되지 않을 수 있으므로 허용되지 않습니다.
이 제한은 잠재적인 런타임 유형 오류를 방지하고 개체의 무결성을 보장합니다. 컬렉션이 유지됩니다. 컬렉션의 의도된 동작을 손상시킬 수 있는 수정을 방지하면서 알 수 없는 컬렉션에서 읽기 위해 와일드카드 유형을 사용할 수 있습니다.
위 내용은 와일드카드 일반 유형(목록)을 사용하여 Java 컬렉션에 값을 추가할 수 없는 이유의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!