2009-08-10 6 views
6

In einem Skript erhält eine Methode einen Parameter vom Typ File und sendet ihn an den Konstruktor von File. Das geht in die Luft, weil File keinen Konstruktor hat, der eine andere Datei als Parameter akzeptiert.Wie kann ich diesen Konstruktor Aufruf in Groovy abfangen?

Wie kann ich diesen Aufruf abfangen und den Parameter auf parameter.absolutePath ändern?

Zum Beispiel:


def x = new File("some_file") 
... 
def meth(def param) { 
    def y = new File(param) // if param is of type File, this blows up 
    // and I'd like groovy's intercepting capabilities to invoke this instead 
    // def y = new File(param.absolutePath) 
} 

Wenn das nicht getan werden kann, wie könnte ich diesen Konstruktor hinzu:


File(File other) { 
    this(other.absolutePath) 
} 

Antwort

6

konnte ich here die Antwort finden. Hier ist der Code, der das macht, was ich oben geschrieben habe funktioniert:

Verwandte Themen