1

所以我有一个类数组:

Class<?>[] classes;

我在构造函数中填充了这些类:

public Sample (Class<?>[] classes){
this.classes = classes;
}

然后,我有一个方法可以根据它们的索引返回其中一个类的实例:

public Object getInstanceOfClassWithIndex(int index){
   return new classes[index];
}

不幸的是,这不起作用并导致编译错误。谢谢。任何帮助,将不胜感激。

4

3 回答 3

2

您应该调用newInstance()方法在给定索引处创建类的对象。

return classes[index].newInstance();
于 2012-11-25T04:30:52.473 回答
0

问题是你在new这里有一个不必要的:

return new classes[index];

尝试:

return classes[index];

请注意,这将返回 aClass<T>而不是T. 要生成它,您需要通过newInstance().

于 2012-11-25T04:32:01.783 回答
0

代替:

public Object getInstanceOfClassWithIndex(int index){
   return new classes[index];
}

和:

public Object getInstanceOfClassWithIndex(int index){
   return classes[index];
}

您没有创建新实例,因此new不需要。

于 2012-11-25T04:32:02.150 回答