Mi comprensión del operador de Groovy .&
es que convierte una llamada a método en un cierre. Por lo tanto parece que el siguiente código (que se puede ejecutar en el Groovy console) debería funcionar:Método de invocación como cierre
class Foo {
def method(def param) {
param + 10
}
}
def invokeClosure = {Closure closure ->
return closure.call()
}
def f = new Foo()
invokeClosure f.&method(6)
Por supuesto, si cambio de la última línea de
invokeClosure {f.method(6)}
que trabaja muy bien, pero ¿qué hay de malo mi comprensión del operador .&
?
Gracias, Don
En realidad, estrictamente hablando pienso '{f.method (6)}' es un cierre que toma un parámetro mientras que '{-> f.method (6)}' es un cierre que no toma params. ¡Gran respuesta, gracias! –