【问题标题】:Invoke method with java reflection with list of parameters使用带有参数列表的 java 反射调用方法
【发布时间】:2021-12-30 12:51:06
【问题描述】:

我目前正在尝试通过反射执行一个方法,但方法参数只是一个列表。

List<Object> params = List.of("param1", "param2", 3, "param4");
Method method = getMethod(); //returns the method
AppInstance instance = new AppInstance();
method.invoke(instance, params);

方法如下:

public void myMethod(String param1, String param2, int param3, String param4){
    //some code
}

但 Java 将它们视为

public void myMethod(List<Object> params){
    //some code
}

问题是参数的长度不同,方法可以有任意数量的参数。

有没有办法解决这个问题?

【问题讨论】:

  • 试试method.invoke(instance, params.toArray());
  • 谢谢,工作成功!

标签: java reflection


【解决方案1】:

试试这个

Object[] params = new Object[]{"param1", "param2", 3, "param4"};
Method method = getMethod();
AppInstance instance = new AppInstance();
method.invoke(instance, params);

【讨论】:

  • 谢谢,工作成功!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-04-03
  • 1970-01-01
  • 2015-09-03
  • 1970-01-01
  • 1970-01-01
  • 2012-06-16
  • 2016-05-26
相关资源
最近更新 更多