Friday, April 29, 2011

How to override a java method from groovy

I have a groovy class that has the ability to write its output to a StringWriter. (via a setStringWriter method)

In java I would use the following code:

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

For Groovy I'm told to use a closure, I've tried the following with no luck:

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

or

filter.setStringWriter{String line -> print line}

How do I go about doing this, or is it even possible?

From stackoverflow
  • The following link gives a clue, although it only mentions interfaces.

    The following works with Groovy 1.6.1:

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

0 comments:

Post a Comment