スクリプトでは、メソッドは File 型のパラメーターを受け取り、それを File のコンストラクターに送信します。File には、別のファイルをパラメーターとして受け取るコンストラクターがないため、これは失敗します。
この呼び出しをインターセプトして、パラメーターを に変更するにはどうすればよいparameter.absolutePath
ですか?
例えば :
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)
}
それができない場合、どうすればこのコンストラクターを追加できますか:
File(File other) {
this(other.absolutePath)
}