我想使用Java反射在我的一个类上调用一个具有以下签名的方法:
public Object execute(Object...params)
在我的loader类中,我已经加载了该类,但我不确定如何设置getMethod调用。目前,我有这样的东西:
Method classEntry = _loadedClass.getMethod("execute", new Class[]{Object[].class});
然后,在创建类的newInstance后,我尝试调用以下方法:
Object classObj = _loadedClass.newInstance();
classEntry.invoke(classObj, params); // params comes in from the method as Object...params
这给了我一个java.lang.NoSuchMethodException
异常。我知道我的问题在于我的getMethod调用。我应该如何设置它来接受params对象?
如果params
的类型为Object []
,则需要调用invoke
,如下所示:
classEntry.invoke(classObj, new Object [] {params});
但这并不能解释NoSuchMethodException