にメソッドを追加しましたが、メソッドが呼び出されているインスタンスClosure
の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]
私はここで何を間違っていますか?