无法创建ArrayList <object>元素的数组,将对象列表作为参数传递</object>

时间:2012-10-04 15:33:51

标签: java

这是我的代码,它有效:

Value[] params2 = {val};
Class<?> clazz = Class.forName("package." + className);
Method[] thisMethod = clazz.getMethods();
thisMethod[0].invoke(clazz.newInstance(), new Object[]{params2});

但是,当我尝试将'val'对象列表作为参数发送时,

List<Value>[] params2 = {valList};

我得到: '无法创建List错误的通用数组'

如何将val对象列表作为参数传递?

2 个答案:

答案 0 :(得分:0)

您需要传递一个参数数组来反射性地调用方法,而不是List个参数。如果您有List,请使用其toArray()方法。

答案 1 :(得分:0)

List<Value>[]表示此数组的成员是列表的数组。 IE浏览器。 {new ArrayList<Value>()}就是实例。如果您的方法将列表作为参数,则可以这样做。否则,您应该将params列表转换为数组,因为这就是Java反射API的设计方式。