ショートバージョン:あなたはあなたの呼びかけの最初の議論を欠いています 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 Invokeが最初のパラメーターとして、クラスのインスタンス(!)がメソッドを呼び出すために、2番目、3番目のパラメーターを取得します。
だから、あなたが実際にあなたのコードで呼び出そうとしているのは、
dossierDetail.get(0).getReviewerOneDetail(sessionFactory);
どちらもメソッド署名(1パラメーター対2パラメーター)と一致しません。また、メソッドが呼ばれるインスタンスタイプ(Dossier
それ以外の DoerDAO
).
あなたが取得するからです Method
から DoerDAO
クラス、私はあなたがそこに書くつもりだったものだと思います、実際に:
method.invoke(doerDao, dossierDetail.get(0), sessionFactory);
これはに翻訳されます
doerDao.getReviewerOneDetail(dossierDetail.get(0), sessionFactory);