所以我有一系列课程:
Class<?>[] classes;
我在构造函数中填充了这些类:
public Sample (Class<?>[] classes){
this.classes = classes;
}
然后,我有一个方法,根据索引返回其中一个类的实例:
public Object getInstanceOfClassWithIndex(int index){
return new classes[index];
}
不幸的是,这不起作用并导致编译错误。谢谢。任何帮助将不胜感激。
答案 0 :(得分:2)
您应该调用newInstance()方法在给定索引处创建类的对象。
return classes[index].newInstance();
答案 1 :(得分:0)
问题是你在这里有一个不必要的new
:
return new classes[index];
尝试:
return classes[index];
请注意,这会返回Class<T>
而不是T
的新实例。要生成它,您需要通过newInstance()
使用反射。
答案 2 :(得分:0)
替换:
public Object getInstanceOfClassWithIndex(int index){
return new classes[index];
}
使用:
public Object getInstanceOfClassWithIndex(int index){
return classes[index];
}
您没有创建新实例,因此不需要new
。