简短版本:您错过了电话中的第一个参数 invoke
.
长版:您在打电话
Method method = DoerDAO.class.getDeclaredMethod(requestedUser,
Dossier.class,
SessionFactory.class);
假设的价值 requestedUser
是 getReviewerOneDetail
, ,然后您会查找方法
getReviewerOneDetail(Dossier arg0, SessionFactory arg1)
接下来,您致电
method.invoke(dossierDetail.get(0), sessionFactory);
这 Javadoc 调用的状态作为第一个参数作为第一个参数(!)的实例(!)以在第二,第二,第三,...参数为调用的实际参数。
因此,您实际上试图在代码中调用的内容是
dossierDetail.get(0).getReviewerOneDetail(sessionFactory);
它既不匹配方法签名(1个参数与2个参数),也不匹配该方法的实例类型(Dossier
代替 DoerDAO
).
因为您获得了 Method
来自 DoerDAO
上课,我想您打算在那里写的是:实际上是:
method.invoke(doerDao, dossierDetail.get(0), sessionFactory);
这将转化为
doerDao.getReviewerOneDetail(dossierDetail.get(0), sessionFactory);