我想做这样的事情:
boolean flag = ...;
def foo(String x, String y) {
// ...
}
def foo2(String x, String y) {
// ...
}
def fun = flag ? foo : foo2;
fun("aaa", "bbb");
有可能类似吗?
您可以使用方法指针:
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"
使用Groovy 3,您也可以用Java方式实现:
def fun = flag ? this::foo : this::foo2;
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句