我有一个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 });

10-08 00:39