8 Stimmen

Wie man eine Java-Methode von Groovy aus überschreibt

Ich habe eine Groovy-Klasse, die die Fähigkeit hat, ihre Ausgabe in eine StringWriter - (über eine setStringWriter Methode).

In Java würde ich den folgenden Code verwenden:

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

Für Groovy wird mir gesagt, um eine Schließung zu verwenden, habe ich versucht, die folgenden mit kein Glück:

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

o

filter.setStringWriter{String line -> print line}

Wie gehe ich dabei vor, oder ist das überhaupt möglich?

12voto

toolkit Punkte 48653

Die folgenden Link gibt einen Hinweis, obwohl dort nur Schnittstellen erwähnt werden.

Das Folgende funktioniert mit Groovy 1.6.1:

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

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X