【发布时间】:2021-11-03 16:27:44
【问题描述】:
有没有办法在使用GroovyShell.evaluate时跳过MissingPropertyException?
def sharedData = new Binding()
def shell = new GroovyShell(sharedData)
shell.evaluate("a=5; b=1") // works fine
// How to not get MissingPropertyException, or silently ignore property 'a'
shell.evaluate("a; b=1") // MissingPropertyException for 'a'
我知道 Expando 解决方案,有没有办法在不定义类的情况下做到这一点?
【问题讨论】:
-
"有没有办法在不定义类的情况下做到这一点?" - 如果您在脚本中引用它但从未定义它,您希望
a评估它是什么? -
感谢@JeffScottBrown。我只想跳过评估
a。 -
"我只想跳过评估 a" - 语言不支持。如果您评估一系列语句,例如
a; b=1,则无法告诉 Groovy 不评估a。脚本中a的存在是对其进行评估的明确请求。 -
您可以将其评估为空的
String、null、数字零或您喜欢的任何其他默认值,但您不能完全跳过评估它。 -
@JeffScottBrown 谢谢,应该没问题。你有一些示例代码吗?
标签: groovy groovyshell groovy-console