如何将groovy函数分配给变量并调用它?

如何将groovy函数分配给变量并调用它?,groovy,Groovy,我想这样做: boolean flag = ...; def foo(String x, String y) { // ... } def foo2(String x, String y) { // ... } def fun = flag ? foo : foo2; fun("aaa", "bbb"); 类似的东西可能吗?您可以使用: 使用Groovy 3: def foo(String x, String y) { "FOO $x $y" } def foo2(String

我想这样做:

boolean flag = ...;
def foo(String x, String y) {
  // ...
}
def foo2(String x, String y) {
  // ...
}
def fun = flag ? foo : foo2;
fun("aaa", "bbb");
类似的东西可能吗?

您可以使用:

使用Groovy 3:

def foo(String x, String y) {
   "FOO $x $y"
}
def foo2(String x, String y) {
   "FOO-TWOOO $x $y"
}

boolean flag = false
def fun = flag ? this.&foo : this.&foo2;
println fun("aaa", "bbb") // prints "FOO aaa bbb"

flag = true
fun = flag ? this.&foo : this.&foo2;
println fun("aaa", "bbb") // prints "FOO-TWOOO aaa bbb"
def fun = flag ? this::foo : this::foo2;