Añadir método a cierre
He añadido un método paraClosure
esmetaClass
, pero parece que no puedo obtener una referencia para la instancia en la que se está recurriendo al método. En este ejemplo,delegate
se establece en la instancia de script, no laf
cierre estoy invocandofixedPoint
en:
Closure.metaClass.fixedPoint = {
while (it != (it = delegate.call(it))) {}
it
}
def f = { Math.round(it / 2.0) }
println f.fixedPoint(9)
da
Caught: groovy.lang.MissingMethodException: No signature of method: test.call() is applicable for argument types: (java.lang.Integer) values: [9]
¿Qué estoy haciendo mal aquí?