Java 프로그램에서 List<? extends SomeBaseClass>
의 객체를 List<SomeBaseClass>
으로 형변환해야합니다. 만약 내가 직접 캐스팅하면 컴파일러는 체크되지 않은 캐스트가 있다는 경고 (경고 표시)를합니다. 모든 객체가 수퍼 클래스로 변환 될 수 있다고 확신해도 컴파일러는이를 인식하지 않고 검사되지 않은 캐스트를보고합니다. 어떻게 경고를 없앨 수 있습니까? @SupressWarnings ("선택 취소") 이외의 다른 방법이 있습니까?수퍼 클래스 목록으로 캐스팅 할 때 Java에서 검사되지 않은 캐스트
피씨 : 코드가 정상적으로 작동합니다. 일을하는 더 좋은 방법이 있는지 궁금합니다.
편집 :
솔루션 : 그는 그가 미래의 목록을 변경하지 않습니다 확신 경우 하나는 캐스트의이 유형을해야한다. 그러나 개별 개체를 목록에서 제거 할 때 개별 개체를 캐스팅하는 것이 좋습니다.
일반적으로 와일드 카드 유형을 반환하지 않으면 이러한 변환의 필요성을 줄일 수 있습니다. 와일드 카드 유형을 인수로 취하는 메서드 내에서 와일드 카드 (반복기 변수 등)를 반복해야하는 곳이 거의 없어야하며 거기에서 실제로 와일드 카드를 반복하므로 실수로 목록에 추가하지 않습니다. 알 수없는 하위 유형. –