我正在跟进这个问题,1268817
在这个问题中,我们找到了一种方法,在给定类的名称(作为字符串)的情况下创建对象的isntance。
但是如何创建这些对象的数组......如何初始化它。
我正在思考一些但似乎无法正常工作的事情
Object[] xyz = Class.forName(className).newInstance()[];
答案 0 :(得分:2)
Object objects = java.lang.reflect.Array.newInstance(Class.forName(classname), 10);
对于10个元素的数组。
令人讨厌的是它返回一个对象,而不是一个对象数组。
汤姆指出,这是允许:
Object objects = java.lang.reflect.Array.newInstance(int.class, 10);
int []不能赋值给Object [],因此返回类型必须是Object。但它仍然很烦人,因为你很少想这样做。
答案 1 :(得分:2)
答案 2 :(得分:1)
以下是创建String数组的示例:
// equiv to String strArray = new String()[10]
Class cls = Class.forName("java.lang.String");
String[] strArray = (String[]) Array.newInstance(cls, 10);
答案 3 :(得分:0)
尝试:
Class<?> c = Class.forName(className);
Object xyz = Array.newInstance(c, length);