groovy variable Funktion
-
01-10-2019 - |
Frage
Ich bin nicht einmal sicher, wie man Titel dieser qn. Aber Hoffnung gibt es eine einfache Möglichkeit, es in dynamischer Sprache wie groovy zu tun.
ich habe eine Klasse-Service haben, wo ich die Business-Logik delegieren. Die Methoden sind in ihm
funA(), funB()... funX()
.
ich eine Controller-Klasse Jetzt habe, wo ich den Dienst Schließung nennen, die wie service.funA aufgerufen werden kann (). Nun, basierend auf einer Variablen (die Werte A, B ... X
haben kann), muss ich den richtigen Service-Verschluss auf cal. Grundsätzlich zu vermeiden, viel, wenn bedingte Anweisungen zu schreiben. So etwas wie service."fun+var"()
tun würde. Ich bin mir nicht sicher, ob es möglich ist variabel in Schließung (Funktion) Namen zu ersetzen. oder irgendeine Art und Weise durch die Funktion (Name) als Parameter übergeben ... nicht sicher
Ich denke, PHP eine ähnliche Funktion hat http://php.net/ manual / en / functions.variable-functions.php
Vielen Dank für jeden Zeiger ..
Lösung
Ja, das ist möglich. Dies sollte das tun, was Sie wollen:
service."fun${var}"()
Der richtige Titel ist dynamischen Methodenaufruf .