Version courte: vous manquez le premier argument de votre appel à invoke
.
Version longue: vous appelez
Method method = DoerDAO.class.getDeclaredMethod(requestedUser,
Dossier.class,
SessionFactory.class);
Disons que la valeur de requestedUser
est getReviewerOneDetail
, alors tu rechercherais la méthode
getReviewerOneDetail(Dossier arg0, SessionFactory arg1)
Ensuite, vous appelez
method.invoke(dossierDetail.get(0), sessionFactory);
La Javadoc Indique que l'invoque obtient le premier paramètre l'instance (!) De la classe pour appeler la méthode sur et comme deuxième, troisième, ... paramètres les paramètres réels pour votre invocation.
Donc, ce que vous essayez vraiment d'appeler dans votre code, c'est
dossierDetail.get(0).getReviewerOneDetail(sessionFactory);
qui ne correspond ni à la signature de la méthode (1 paramètre vs 2 paramètres), ni au type d'instance sur lequel la méthode est appelée (Dossier
à la place de DoerDAO
).
Parce que vous acquérez le Method
du DoerDAO
classe, je suppose que ce que vous aviez l'intention d'écrire là-bas, était en fait:
method.invoke(doerDao, dossierDetail.get(0), sessionFactory);
Cela se traduirait par
doerDao.getReviewerOneDetail(dossierDetail.get(0), sessionFactory);