如何确定脚本引擎中 Groovy 代码 运行 中是否存在变量?

How can I determine if a variable exists from within the Groovy code running in the Scripting Engine?

如何确定脚本引擎中 Groovy 代码 运行 中是否存在变量?

变量由ScriptEngine's put method

放置

脚本引擎注入的变量保存在 binding.variables,所以你可以,例如检查名为 xx:

的变量
if (binding.variables["xx"]) ...

groovy.lang.Script there is a method public Binding getBinding(). See also groovy.lang.Binding中使用方法public boolean hasVariable(String name)

因此您可以像

一样简单地检查变量是否存在
if (binding.hasVariable('superVariable')) {
// your code here
}
// Example usage: defaultIfInexistent({myVar}, "default")
def defaultIfInexistent(varNameExpr, defaultValue) {
    try {
        varNameExpr()
    } catch (exc) {
        defaultValue
    }
}

您可以使用'contains'列表方法检查变量是否存在:

if (list.contains(var)) {
// your code
}