我已经向Closure
's添加了一个方法metaClass
,但我似乎无法获得正在调用该方法的实例的引用。在此示例中,delegate
设置为脚本实例,而不是f
我正在调用的闭包fixedPoint
:
Closure.metaClass.fixedPoint = {
while (it != (it = delegate.call(it))) {}
it
}
def f = { Math.round(it / 2.0) }
println f.fixedPoint(9)
给
捕获:groovy.lang.MissingMethodException:没有方法签名:test.call() 适用于参数类型:(java.lang.Integer) 值:[9]
我在这里做错了什么?