我想使用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对象?
答案 0 :(得分:2)
如果params
的类型为Object []
,那么您需要像这样调用invoke
:
classEntry.invoke(classObj, new Object [] {params});
但这并不能解释NoSuchMethodException