求教-泛化Class对象在容器中的存贮问题
package com.kevin.test2;
import java.util.ArrayList;
import java.util.List;
class A {
}
class B extends A{
}
class C extends A{
}
public class Test{
private static List<Class<? extends A>> types =
new ArrayList<Class<? extends A>>();
public static void main(String [] args) throws ClassNotFoundException{
types.add((Class<? extends A>)Class.forName("com.kevin.test2.C"));
types.add((Class<? extends A>)Class.forName("com.kevin.test2.B"));
//types.add(Class.forName("com.kevin.test2.C"));
//types.add(Class.forName("com.kevin.test2.B"));
}
}
请问ArrayList中既然装的是A或是A的子类的Class对象,那么像注释的那样传递B和C的Class对象为何不可,为何仍要转型?