Dodaj metodę do zamknięcia

Dodałem metodę doClosurejestmetaClass, ale wydaje mi się, że nie jestem w stanie uzyskać odniesienia do instancji, na którą wywoływana jest metoda. W tym przykładziedelegate jest ustawiony na instancję skryptu, a nie naf zamknięcie przywołujęfixedPoint na:

Closure.metaClass.fixedPoint = {
    while (it != (it = delegate.call(it))) {}
    it
}
def f = { Math.round(it / 2.0) }
println f.fixedPoint(9)

daje

Caught: groovy.lang.MissingMethodException: No signature of method: test.call() is applicable for argument types: (java.lang.Integer) values: [9]

Co tu robię źle?

questionAnswers(2)

yourAnswerToTheQuestion