我想知道有这样的语法是什么用法。我已经写了一个简单的程序如下,类<? 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>
在这里没有该类期待一个类(它实际上它接受知道对象,它是?)这确实扩展了Collection。那么ArrayList有什么问题?
而且它是一个有效的,如果语法如果我声明的东西作为Class<? extends T>
你可以声明为东西' extends T>类',但它并不是指在Java中的任何物体,这就是类'Object'是在这里寻找更多的信息:HTTP:/ /docs.oracle.com/javase/6/docs/api/java/lang/Class.html,但'Class'指的是实际的实现和细节。 – dcpomero