我想在变量中存储某些表达式/方法并执行它们。例如,创建一个新目录,我正在尝试以下操作。
def createDir = 'new File("new").mkdir()' createDir
但是它不会创建一个“新”文件夹。如果我只是使用new File(“new”).mkdir(),它就可以工作了换句话说,我在groovy中寻找调用表达式(powershell)的等价物
deyfvvtc1#
如果你正在寻找一种直接从字符串表示形式执行函数的方法,你可以使用evaluate()函数,它将运行字符串(或文件)中的代码。你应该谨慎使用,永远不要执行由用户提供的/包含用户输入的字符串。下面是一个示例:
evaluate()
def function = "println 'This came from a string!'" evaluate(function)
话虽如此,我认为你最好还是采用类似于伦纳德·布吕宁斯在他的回答中提出的解决方案,因为它更安全,更不容易出错。
2条答案
按热度按时间deyfvvtc1#
如果你正在寻找一种直接从字符串表示形式执行函数的方法,你可以使用
evaluate()
函数,它将运行字符串(或文件)中的代码。你应该谨慎使用,永远不要执行由用户提供的/包含用户输入的字符串。下面是一个示例:话虽如此,我认为你最好还是采用类似于伦纳德·布吕宁斯在他的回答中提出的解决方案,因为它更安全,更不容易出错。