2009-04-16 12 views
8

Tengo una clase groovy que tiene la capacidad de escribir su salida en un StringWriter - (a través de un método setStringWriter).Cómo anular un método de Java de groovy

en Java Me gustaría utilizar el siguiente código:

filter.setStringWriter(new StringWriter(){ 
    @Override 
    public void write(String string){ 
     // do something with the string 
    } 
}); 

Por maravilloso que me dicen de usar un cierre, lo he intentado lo siguiente sin suerte:

def s = {String line -> print line} as StringWriter 
filter.setStringWriter(s) 

o

filter.setStringWriter{String line -> print line} 

¿Cómo puedo hacer esto, o incluso es posible?

Respuesta

12

La siguiente link da una pista, aunque solo menciona interfaces.

Los siguientes trabajos con Groovy 1.6.1:

def s = [ write: { String line -> print line} ] as StringWriter 
filter.setStringWriter(s) 
Cuestiones relacionadas