我有一个Method
和一个List<Object>
参数用于调用方法。但是,参数列表的顺序可能不正确,可能包含太多/不足以匹配方法签名的参数。
在我重新发明轮子之前,是否存在一个函数来调用我拥有的参数列表的方法,并且它尽可能匹配方法签名的参数......也许是Spring中的某些东西?
答案 0 :(得分:1)
不,任何解决问题的实现都需要只有Method
和List<Object>
的提供商才能拥有的外部信息。
使用像
这样的方法void method (String name, String city, String parent) {}
和List
"Sotirios", "New York", "Alexander"
每个参数在Method#invoke(..)
?
只有你能知道这些信息。
答案 1 :(得分:-2)
您可以直接将列表传递给您的方法,也可以使用method overloading。
方法重载可能很有用,但如果您的参数乱序,则不会真正成为一个选项。如果您可以事先对对象列表进行排序,那么它可能是一个选项。
但是在我看来,传递对象列表的最简单方法是传递列表本身,而不是事先尝试将其分解。在这种情况下,您需要写出您的逻辑,以便在方法内部分解列表。此案例还将为您提供更多测试功能,以找出列表中包含的确切内容。