我对Groovy运算符.&
的理解是它将方法调用转换为闭包。因此,以下代码(可在Groovy控制台中运行)应该可以工作:
class Foo {
def method(def param) {
param + 10
}
}
def invokeClosure = {Closure closure ->
return closure.call()
}
def f = new Foo()
invokeClosure f.&method(6)
当然,如果我将最后一行更改为
invokeClosure {f.method(6)}
它能正常工作,但是我对于.&
运算符的理解有什么问题呢?
谢谢, Don
{f.method(6)}
是一个接受一个参数的闭包,而{-> f.method(6)}
是一个不接受参数的闭包。非常好的答案,谢谢! - Dónal