如何从groovy覆盖java方法

Cra*_*aig 8 java groovy

我有一个groovy类,能够将其输出写入StringWriter- (通过setStringWriter方法).

在java中我会使用以下代码:

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

对于Groovy,我被告知要使用一个闭包,我已经尝试了以下但没有运气:

def s =  {String line -> print line} as StringWriter
filter.setStringWriter(s)
Run Code Online (Sandbox Code Playgroud)

要么

filter.setStringWriter{String line -> print line}
Run Code Online (Sandbox Code Playgroud)

我该怎么做呢,或者甚至可能吗?

too*_*kit 12

以下链接给出了一个线索,虽然它只提到了接口.

以下适用于Groovy 1.6.1:

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