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 ..

War es hilfreich?

Lösung

Ja, das ist möglich. Dies sollte das tun, was Sie wollen:

service."fun${var}"()

Der richtige Titel ist dynamischen Methodenaufruf .

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top