Comment puis-je invoquer dynamiquement des méthodes dans Groovy?
Au moment de l'exécution, je suis de saisir une liste de noms de méthode d'une classe, et j'ai envie d'appeler ces méthodes. Je comprends comment obtenir la première partie fait partir d'ici:
http://docs.codehaus.org/display/GROOVY/JN3535-Reflection
GroovyObject.methods.each{ println it.name }
Ce que je n'arrive pas à trouver d'informations sur la façon d'invoquer une méthode une fois que j'ai attrapé son nom.
Ce que je veux est d'arriver ici:
GroovyObject.methods.each{ GroovyObject.invokeMethod( it.name, argList) }
Je n'arrive pas à trouver la syntaxe correcte. Le ci-dessus semble supposer que j'ai surchargé le défaut invokeMethod pour la GroovyObject classe, ce qui n'est PAS la direction que je veux aller.
source d'informationauteur avgvstvs
Vous devez vous connecter pour publier un commentaire.
Une fois que vous obtenez une
MetaMethod
objet de la métaclasse, vous pouvez appelerinvoke
sur elle. Par exemple:Alternativement, vous pouvez utiliser le nom directement:
Groovy permet une dynamique d'invocation de méthode ainsi que des arguments à l'aide de la propagation de l'opérateur:
Référence ici
Réponse à la Question ici.