我想getDeclaredMethod()
用这个签名找到一个方法:
public void foo(String inArg1, Object... inArgs);
使用此调用:
Class<?>[] argClasses = { String.class, Integer.class };
Method m = clazz.getDeclaredMethod("foo", argClasses);
但它会产生一个NoSuchMethodException
异常。但是,可以调用该方法(假设您以其他方式找到它):
Object[] args = { "arg1", new Integer(2) };
m.invoke(instance, args);
我可以用 将它们全部列出getDeclaredMethods()
,然后尝试匹配自己的签名,但这似乎需要做很多工作。
我想做的事情应该是可能的吗?我只是错过了一些愚蠢的东西吗?