我如何确定从脚本引擎运行Groovy代码中存在的变量?
在groovy.lang.Script有一种方法public Binding getBinding()
。另请参阅法groovy.lang.Binding public boolean hasVariable(String name)
。
因此,你可以简单的检查变量是否存在像
if (binding.hasVariable('superVariable')) {
// your code here
}
脚本引擎注入的变量保持binding.variables
内,这样你就可以如检查变量命名xx
:
if (binding.variables["xx"]) ...
// Example usage: defaultIfInexistent({myVar}, "default")
def defaultIfInexistent(varNameExpr, defaultValue) {
try {
varNameExpr()
} catch (exc) {
defaultValue
}
}