这是我的代码,它有效:
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对象列表作为参数传递?
答案 0 :(得分:0)
您需要传递一个参数数组来反射性地调用方法,而不是List
个参数。如果您有List
,请使用其toArray()
方法。
答案 1 :(得分:0)
List<Value>[]
表示此数组的成员是列表的数组。 IE浏览器。 {new ArrayList<Value>()}
就是实例。如果您的方法将列表作为参数,则可以这样做。否则,您应该将params列表转换为数组,因为这就是Java反射API的设计方式。