groovy

2009-04-16 12 views
8

से जावा विधि को ओवरराइड करने के लिए कैसे करें मेरे पास एक ग्रोवी क्लास है जिसमें StringWriter - (setStringWriter विधि के माध्यम से) को आउटपुट लिखने की क्षमता है।groovy

जावा मैं निम्नलिखित कोड का प्रयोग करेंगे में:

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

ग्रूवी के लिए मुझे बताया गया हूँ एक बंद उपयोग करने के लिए, मैं कोई भाग्य के साथ निम्नलिखित की कोशिश की है:

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

या

filter.setStringWriter{String line -> print line} 

मैं यह करने के बारे में कैसे जा सकता हूं, या यह भी संभव है?

उत्तर

12

निम्नलिखित link एक सुराग देता है, हालांकि यह केवल इंटरफेस का उल्लेख करता है।

ग्रूवी 1.6.1 के साथ निम्न काम करता है:

def s = [ write: { String line -> print line} ] as StringWriter 
filter.setStringWriter(s) 
संबंधित मुद्दे