繁体   English   中英

Groovy 动态调用 Function

[英]Groovy Calll Function Dynamically

我想将每个 object 的 function 名称存储在 hash Z1D78DC8ED51214C17A94F14Z 中,并且可以基于它的名称调用它

例如在 python 我能够执行下一个:

def function_1(a1, a2, a3):
    return a1+a2+a3
def function_2(a1, a2, a3):
    return a3-a2-a1
def function_3(a1, a2, a3):
    return a1*a2*a3

for func in ['function_1', 'function_2', 'function_3']:
    result = globals()[func](arg1, arg2, arg3)
    print (result)

在 groovy 中是否可能发生这样的事情(类似于在 python 中使用全局变量)? 我希望能够将函数名称作为字符串存储在某处......

不,我不想在这里使用课程

你可以声明方法

def function_1(a1, a2, a3) {
    a1+a2+a3
}

...

或关闭

def function_1 = {a1, a2, a3 ->
    a1+a2+a3
}

...

然后做

['function_1', 'function_2', 'function_3'].each { func ->
    def result = "$func"(arg1, arg2, arg3)
    println result
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM