使用反射传递 List<Integer>

ogo*_*ald 3 java reflection

我有一个 Java 方法:

  public void setPri(List<Integer> pri) { this.pri = pri; }
Run Code Online (Sandbox Code Playgroud)

我想要做的是调用该方法并传递一个列表。使用反射的正确方法是什么?

我正在尝试以下操作:

  method = object.getClass().getDeclaredMethod("setPri", List.class);
  method.invoke(null,new Object[] { pri });
Run Code Online (Sandbox Code Playgroud)

Ste*_*ler 6

您的代码不会主要工作,因为您没有将实例作为第一个参数传递:

method.invoke(null,new Object[] { pri });
Run Code Online (Sandbox Code Playgroud)

您需要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 });
Run Code Online (Sandbox Code Playgroud)