2009-04-16 99 views
8

我有一个groovy类,能够将其输出写入StringWriter - (通过setStringWriter方法)。如何覆盖groovy中的java方法

在java中我会使用下面的代码:

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

对Groovy有人告诉我使用闭包,我已经试过,没有运气以下:

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

filter.setStringWriter{String line -> print line} 

我该如何去做,或者甚至有可能?

回答

12

下面的link给出了一个线索,虽然它只提到接口。

使用Groovy 1.6.1以下工作:

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