调用字符串中包含的方法名称

Jar*_*red 42 groovy

如何根据Groovy中字符串的值调用方法?例如,而不是

switch (val) {
case "one":
    Obj.one()
    break
case "two":
    Obj.two()
    break
}
Run Code Online (Sandbox Code Playgroud)

我想这样做obj.val,其中val包含任何" 一""二",而不是一个case语句.

Mic*_*rdt 86

动态方法调用如下所示

obj."$val"()
Run Code Online (Sandbox Code Playgroud)

  • 提供的链接已经死亡.这个可能包括这个主题:http://www.groovy-lang.org/metaprogramming.html#_dynamic_method_names (5认同)
  • 修改后的链接指向错误的功能(动态创建方法而不是动态调用它们)。 (3认同)