Java-reflectie; hoe gebruik je Method.invoke () om een ​​object-array op te halen?

Ik heb hulp nodig met reflectie in Java. Ik moet reflectie gebruiken om een ​​methode aan te roepen die een objectarray retourneert. Method.invoke() retourneert alleen een object. Hoe is dit gebeurd?

Hartelijk dank voor alle inzichten!

2

2 antwoord

Je hoeft alleen de retourwaarde van Method.invoke() te gebruiken voor wat je toevallig weet dat het is. Niet erg robuust, maar dat zijn de risico's van reflectie! Dus in dit geval zou het zijn:

Object[] result = (Object[]) method.invoke(...);

Btw, merk op dat als de methode een primitieve ( int , double , etc) retourneert, Method.invoke het equivalente blok ( Geheel getal , Dubbel , enz.).

6
toegevoegd
@ user1084636: accepteer een van deze als het antwoord!
toegevoegd de auteur Nate W., de bron
Veel dank aan jullie allebei !!!
toegevoegd de auteur user1084636, de bron

Een Object [] is een object - cast het resultaat van invoke naar Object [] .

0
toegevoegd