gpt4 book ai didi

groovy - 如何在 Groovy 中拦截此构造函数调用?

转载 作者:行者123 更新时间:2023-12-02 07:06:51 25 4
gpt4 key购买 nike

在脚本中,方法接收 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)
}

最佳答案

我设法找到答案here 。这是使我上面编写的代码起作用的代码:


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

关于groovy - 如何在 Groovy 中拦截此构造函数调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1254732/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com