2009-08-10 16 views
6

Bir komut dosyasında, bir yöntem Dosya türünde bir parametre alır ve bunu Dosya yapıcısına gönderir. Bu, dosya başka bir dosyayı parametre olarak alan bir kurucuya sahip olmadığı için patlar.Groovy'de bu kurucu çağrısını nasıl engelleyebilirim?

Bu aramayı nasıl engelleyebilirim ve parametreyi parameter.absolutePath olarak mı değiştirebilirim? Örneğin

: Bu işlem tamamlandıktan edilemiyorsa


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) 
} 

, bu kurucu ekleyin nasıl:


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

cevap

6

cevabı here bulmayı başardılar. İşte yukarıda yazdığım şeyi yapan kod aşağıdadır:


File.metaClass.constructor << { File arg -> 
    new File(arg.absolutePath) 
} 
İlgili konular