【问题标题】:java, treque, instantiating an array with class tjava,treque,用类 t 实例化一个数组
【发布时间】:2016-10-17 19:25:35
【问题描述】:

我有一个有构造函数的类

public Treque(Class<T> t) {

}

我需要实例化一个具有类 t 的数组。如何实例化它?

【问题讨论】:

标签: java


【解决方案1】:

这取决于您的确切目标是什么。如果您想要任意的东西,请进行反思。如果你只是想传递一个继承类的对象,你可以使用不同的语法。

由于您的示例使用 Class,请尝试以下反射示例:

我认为这里接受的答案就是您正在寻找的答案。 Java Generics Creating Array from Class

还有一点:

    public void test(Class<T> t) {
            T[] a=new T[10];//complie error

        Object array = java.lang.reflect.Array.newInstance(t, 10);//lots of ambiguity
        String[] arrT = (String[]) array;//works if you know the final type

        Object[] anyType = new Object[10];
        for(int i=0;i<10;i++)
               anyType[i] = createObject(t.getName());
        //You will need to cast the Object to your desired type
        }
      static Object createObject(String className) {
          //http://www.java2s.com/Code/Java/Reflection/ObjectReflectioncreatenewinstance.htm
      Object object = null;
      try {
          Class classDefinition = Class.forName(className);
          object = classDefinition.newInstance();
      } catch (InstantiationException e) {
          System.out.println(e);
      } catch (IllegalAccessException e) {
          System.out.println(e);
      } catch (ClassNotFoundException e) {
          System.out.println(e);
      }
      return object;
   }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多