我一直在用泛型挣扎。我不知道为什么这让我发疯。我有几个老问题。与仿制药和类奋斗
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<?>[] {
此解决方案不令人满意,因为您无法轻松投射。
所以我的问题是:如何解决这个问题?我脑海中的结在哪里?
+1。对Collections使用泛型,而不是数组。 – seanmonstar 2009-07-09 07:56:28