【发布时间】: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