【问题标题】:java - return an instance of a class (array)java - 返回一个类的实例(数组)
【发布时间】:2012-11-25 04:27:51
【问题描述】:

所以我有一个类数组:

Class<?>[] classes;

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

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

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

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

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

【问题讨论】:

  • 如果是编译错误,他怎么会有堆栈跟踪?

标签: java android class object fragment


【解决方案1】:

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

return classes[index].newInstance();

【讨论】:

    【解决方案2】:

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

    return new classes[index];
    

    尝试:

    return classes[index];
    

    请注意,这将返回 Class&lt;T&gt; 而不是 T 的新实例。要生成它,您需要通过newInstance() 使用反射。

    【讨论】:

      【解决方案3】:

      替换:

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

      与:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-04-17
        • 1970-01-01
        • 2021-01-09
        • 1970-01-01
        • 1970-01-01
        • 2016-01-21
        • 1970-01-01
        相关资源
        最近更新 更多