【发布时间】:2016-10-17 19:25:35
【问题描述】:
我有一个有构造函数的类
public Treque(Class<T> t) {
}
我需要实例化一个具有类 t 的数组。如何实例化它?
【问题讨论】:
标签: java
我有一个有构造函数的类
public Treque(Class<T> t) {
}
我需要实例化一个具有类 t 的数组。如何实例化它?
【问题讨论】:
标签: java
这取决于您的确切目标是什么。如果您想要任意的东西,请进行反思。如果你只是想传递一个继承类的对象,你可以使用不同的语法。
由于您的示例使用 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;
}
【讨论】: