我正在使用GroovyShell在JVM中运行Groovy脚本。GroovyShell使用了几个AST自定义器和一些预定义的方法来定义DSL。但是我发现可以在任何groovy脚本中编写“run()”,使其在无限循环中运行。
有人知道如何禁止在已经运行的脚本中调用“run()”吗?
我试图覆盖脚本的调用方法并设置一个标志以在脚本运行时禁用run方法…但是无论我做什么,我仍然可以在脚本中调用这个run()方法,似乎无需通过脚本的调用方法。
先谢谢你的帮助
将此行添加到您执行的每个脚本中:
this.metaClass.run { null }