groovy变量函数

bsr*_*bsr 0 groovy dynamic-languages

我甚至不确定如何标题这个qn.但是,希望有一种简单的方法可以用像groovy这样的动态语言来实现.

说我有一个类服务,我委托业务逻辑.它的方法是 funA(), funB()... funX().

现在我有一个控制器类,我在其中调用服务闭包,可以像service.funA()一样调用它.现在基于变量(可以有值A, B ... X),我需要调用正确的服务闭包.基本上是为了避免编写很多if条件语句.service."fun+var"()会有类似的事情.我不确定是否可以在闭包(函数)名称中替换变量.或以任何方式将函数(名称)作为参数传递......不确定

我认为PHP有​​类似的功能 http://php.net/manual/en/functions.variable-functions.php

谢谢任何指针..

Mic*_*rdt 8

是的,这是可能的.这应该做你想要的:

service."fun${var}"()
Run Code Online (Sandbox Code Playgroud)

正确的标题是动态方法调用.