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

t8e9dugd  于 2022-09-20  发布在  Jenkins
关注(0)|答案(4)|浏览(569)

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

该变量由ScriptEngine的PUT方法放置

cxfofazt

cxfofazt1#

groovy.lang.Script中有一个方法public Binding getBinding()。而groovy.lang.Binding具有方法public boolean hasVariable(String name)

因此,您可以简单地检查变量是否存在,如下所示:

if (binding.hasVariable('superVariable')) {
// your code here
}
kzipqqlq

kzipqqlq2#

// Example usage: defaultIfInexistent({myVar}, "default")
def defaultIfInexistent(varNameExpr, defaultValue) {
    try {
        varNameExpr()
    } catch (exc) {
        defaultValue
    }
}
7vux5j2d

7vux5j2d3#

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

if (binding.variables["xx"]) ...
u5rb5r59

u5rb5r594#

您可以使用‘CONTAINS’LIST方法检查变量是否存在:

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

相关问题