
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)} 它工作得很好,但是我对这个问题的理解有什么不对. *** 作符?
谢谢,
唐
抛出异常:没有方法签名:java.lang.Integer.call()
下面将f.method的方法指针传递给invokeClosure,并且通常会使用.&.
class Foo { def method(def param) { param + 10 }}def invokeClosure = {Closure closure -> return closure.call(6) // can leave off .call}def f = new Foo()invokeClosure f.&method 正如您所指出的,以下内容将起作用:
invokeClosure {f.method(6)} 那是因为你传递的是一个不带参数的闭包,这就是为什么closure.call()在这种情况下有效的原因.
总结以上是内存溢出为你收集整理的groovy – 将方法作为闭包调用全部内容,希望文章能够帮你解决groovy – 将方法作为闭包调用所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)