25

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

该变量是由ScriptEngine 的 put 方法放置的

4

4 回答 4

37

groovy.lang.Script中有一个方法public Binding getBinding()。另请参见groovy.lang.Binding with method public boolean hasVariable(String name)

因此,您可以简单地检查变量的存在,例如

if (binding.hasVariable('superVariable')) {
// your code here
}
于 2017-09-14T05:46:39.037 回答
7
// Example usage: defaultIfInexistent({myVar}, "default")
def defaultIfInexistent(varNameExpr, defaultValue) {
    try {
        varNameExpr()
    } catch (exc) {
        defaultValue
    }
}
于 2019-05-25T16:23:05.250 回答
5

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

if (binding.variables["xx"]) ...
于 2017-02-28T17:31:30.780 回答
1

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

if (list.contains(var)) {
// your code
}
于 2021-01-21T10:27:37.857 回答