我有一个Java方法:
public void setPri(List<Integer> pri) { this.pri = pri; }
我想做的是调用该方法并传递一个List。使用反射的正确方法是什么?
我正在尝试以下方法:
method = object.getClass().getDeclaredMethod("setPri", List.class);
method.invoke(null,new Object[] { pri });
最佳答案
您的代码主要不会起作用,因为您没有将实例作为第一个参数传递:
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 });