让说我有一个类Foo
这样Java反射 - 匹配形式参数列表,实际参数列表
public class Foo {
public void setParameter(String name, Object value) {
// ...
}
}
我想通过反射来获得setParameter
方法。
问题是,在我的代码中,我只知道实际的参数,当我需要获取此方法时。我已经建立了一个小方法,可以给我Class
实际参数数组。不幸的是,从实际参数([String.class, String.class])
返回Class
阵列不匹配的Class
阵列的形式参数([String.class, Object.class])
和getDeclaredMethod
产生异常NoSuchMethodException
。
你知道任何可以帮助匹配该方法的库或代码片段吗?
在我的情况下,方法来自一个接口,它只提供第一个。 – Stephan
@Stephan这两种方法在一堂课中绝对可以接受。编译器将使用最匹配的方法。如果两种方法平等匹配。 (对象,字符串)和(字符串,对象),您将需要投入一个参数来指导编译器到一个特定的方法。 –
+1:您可能还需要遍历超类方法,或者使用'getMethods();'获取公共方法。 –