그런 구문을 사용하는 용도가 무엇인지 알고 싶습니다. 나는 다음과 같이 간단한 프로그램,이 같은 컴파일 오류를 보여줍니다 왜클래스 <? extends T> 사용법
public class Sample{
public static void main(String[] args) {
Class<? extends Collection> someCollectionClass = someMethod();
}
public static ArrayList someMethod() {
return new ArrayList();
}
}
,
- Collection is a raw type. References to generic type Collection<E> should be
parameterized
- Type mismatch: cannot convert from ArrayList to Class<? extends Collection>
여기에서 그 클래스 (그것이 알고에 동의 함을 그 실제로 객체를 클래스를 기대 하시는가를 작성했습니다, 그것은이다 ?) 컬렉션을 확장합니다. ArrayList에 문제가 있습니까? ArrayList
는 Class
없기 때문에 구 제가
Class<? extends T>
당신은 클래스 extends T>''로 뭔가를 선언 할 수 있지만, 자바의 모든 객체를 참조하지 않는, 즉 클래스가'Object'가 무엇의 자세한 내용은 여기를보세요 :. HTTP ://docs.oracle.com/javase/6/docs/api/java/lang/Class.html을 참조하십시오. 그러나 클래스는 실제 구현 및 세부 정보를 참조합니다. – dcpomero