Kurzversion: Ihnen fehlen das erste Argument in Ihrem Anruf an invoke
.
Lange Version: Sie rufen an
Method method = DoerDAO.class.getDeclaredMethod(requestedUser,
Dossier.class,
SessionFactory.class);
Nehmen wir an, der Wert von requestedUser
ist getReviewerOneDetail
, Dann würden Sie die Methode nachschlagen
getReviewerOneDetail(Dossier arg0, SessionFactory arg1)
Als nächstes rufst du an
method.invoke(dossierDetail.get(0), sessionFactory);
Das Javadoc Staaten, die aufgerufen werden, erhält als erster Parameter die Instanz (!) der Klasse, um die Methode auf und als zweite, dritte, ... Parameter die tatsächlichen Parameter für Ihren Aufruf.
Was Sie also tatsächlich in Ihrem Code anrufen möchten, ist also
dossierDetail.get(0).getReviewerOneDetail(sessionFactory);
Dies stimmt weder mit der Methodensignatur (1 Parameter vs. 2 Parameter) noch mit dem Instanztyp überein, auf dem die Methode aufgerufen wird (Dossier
Anstatt von DoerDAO
).
Weil du das erwerben Method
von dem DoerDAO
Klasse, ich denke, was Sie dort schreiben wollten, war eigentlich:
method.invoke(doerDao, dossierDetail.get(0), sessionFactory);
Dies würde sich umsetzen lassen
doerDao.getReviewerOneDetail(dossierDetail.get(0), sessionFactory);