【发布时间】:2009-07-09 06:55:03
【问题描述】:
我一直在为泛型而苦苦挣扎。我不知道为什么这让我发疯。我有一个老问题,我遇到过好几次了。
class Father {
...
}
class Child1 extends Father {
...
}
class Child2 extends Father {
...
}
public class TestClass {
private static Class<? extends Father>[] myNiceClasses = new Class<? extends Father>[] {
Child1.class,
Child2.class
}
}
这不起作用。编译器这样抱怨:
Cannot create a generic array of Class<? extends Father>
如果我将(错误的)数组行更改为
private static Class<Father>[] myNiceClasses = new Class<Father>[] {
出现同样的错误信息,但也添加了这条信息:
Type mismatch: cannot convert from Class<Child1> to Class<Father>
唯一的工作版本是这一行:
private static Class<?>[] myNiceClasses = new Class<?>[] {
这个解决方案并不令人满意,因为你不能那么容易地施法。
所以我的问题是:如何解决这个问题?我脑子里的结在哪里?
【问题讨论】: