从groovy中的变量调用表达式

f5emj3cl  于 2022-11-01  发布在  其他
关注(0)|答案(2)|浏览(182)

我想在变量中存储某些表达式/方法并执行它们。例如,创建一个新目录,我正在尝试以下操作。

def createDir = 'new File("new").mkdir()'
createDir

但是它不会创建一个“新”文件夹。如果我只是使用new File(“new”).mkdir(),它就可以工作了
换句话说,我在groovy中寻找调用表达式(powershell)的等价物

deyfvvtc

deyfvvtc1#

如果你正在寻找一种直接从字符串表示形式执行函数的方法,你可以使用evaluate()函数,它将运行字符串(或文件)中的代码。你应该谨慎使用,永远不要执行由用户提供的/包含用户输入的字符串。下面是一个示例:

def function = "println 'This came from a string!'"
evaluate(function)

话虽如此,我认为你最好还是采用类似于伦纳德·布吕宁斯在他的回答中提出的解决方案,因为它更安全,更不容易出错。

相关问题