2010-04-25 2 views
0

Я даже не уверен, как назвать этот qn. Но, надеюсь, что есть простой способ сделать это в динамическом языке, таком как groovy.groovy variable function

сказать У меня есть служба класса, где я делегирую бизнес-логику. методы в нем: funA(), funB()... funX().

Теперь у меня есть класс контроллера, где я вызываю закрытие службы, которое может быть вызвано как service.funA(). Теперь, основываясь на переменной (которая может иметь значения A, B ... X), мне нужно выполнить правильное закрытие службы. В основном, чтобы избежать записи многословных операторов. Что-то вроде service."fun+var"(). Я не уверен, можно ли заменить переменную в имени закрытия (функции). или каким-либо образом, передавая функции (имя) в качестве параметра ... не уверен,

Я думаю, что PHP имеет аналогичную функцию http://php.net/manual/en/functions.variable-functions.php

спасибо за любой указатель ..

ответ

8

Да, это возможно. Это должно делать то, что вы хотите:

service."fun${var}"() 

Правильное название dynamic method invocation.

+0

Большое вам спасибо .. отлично работал – bsr