将参数与方法签名匹配

时间:2014-06-18 20:46:11

标签: java spring reflection

我有一个Method和一个List<Object>参数用于调用方法。但是,参数列表的顺序可能不正确,可能包含太多/不足以匹配方法签名的参数。

在我重新发明轮子之前,是否存在一个函数来调用我拥有的参数列表的方法,并且它尽可能匹配方法签名的参数......也许是Spring中的某些东西?

2 个答案:

答案 0 :(得分:1)

不,任何解决问题的实现都需要只有MethodList<Object>的提供商才能拥有的外部信息。

使用像

这样的方法
void method (String name, String city, String parent) {}

List

"Sotirios", "New York", "Alexander"

每个参数在Method#invoke(..)

中的位置

只有你能知道这些信息。

答案 1 :(得分:-2)

您可以直接将列表传递给您的方法,也可以使用method overloading

方法重载可能很有用,但如果您的参数乱序,则不会真正成为一个选项。如果您可以事先对对象列表进行排序,那么它可能是一个选项。

但是在我看来,传递对象列表的最简单方法是传递列表本身,而不是事先尝试将其分解。在这种情况下,您需要写出您的逻辑,以便在方法内部分解列表。此案例还将为您提供更多测试功能,以找出列表中包含的确切内容。