Добавить метод в Closure
Я добавил методClosure
«smetaClass
, но я не могу получить ссылку на экземпляр, к которому вызывается метод. В этом примереdelegate
устанавливается на экземпляр скрипта, а неf
закрытие я призываюfixedPoint
на:
Closure.metaClass.fixedPoint = {
while (it != (it = delegate.call(it))) {}
it
}
def f = { Math.round(it / 2.0) }
println f.fixedPoint(9)
дает
Caught: groovy.lang.MissingMethodException: No signature of method: test.call() is applicable for argument types: (java.lang.Integer) values: [9]
Что я тут не так делаю?