我有一个Java方法:
public void setPri(List<Integer> pri) { this.pri = pri; }
我想要做的是调用方法并传递List。使用反射的正确方法是什么?
我正在尝试以下方法:
method = object.getClass().getDeclaredMethod("setPri", List.class);
method.invoke(null,new Object[] { pri });
答案 0 :(得分:3)
您的代码主要不起作用,因为您没有将实例作为第一个参数传递:
method.invoke(null,new Object[] { pri });
您需要将object
作为第一个参数传递,而不是null
。
这应该有效:
List<Integer> pri = Arrays.asList(1,2,3,4);
Method method = object.getClass().getDeclaredMethod("setPri", List.class);
method.invoke(object, new Object[] { pri });