Как определить, существует ли переменная из кода Groovy, запущенного в Scripting Engine?
Как определить, существует ли переменная из кода Groovy, запущенного в Scripting Engine?
Переменная была помещена метод ScriptEngine put
Ответы
Ответ 1
В groovy.lang.Script существует метод public Binding getBinding()
. См. Также groovy.lang.Binding с помощью метода public boolean hasVariable(String name)
.
Таким образом, вы можете просто проверить существование переменной, например
if (binding.hasVariable('superVariable')) {
// your code here
}
Ответ 2
Переменные, вводимые механизмом Scripting Engine, хранятся в пределах
binding.variables
, так что вы можете, например, проверьте переменную с именем xx
:
if (binding.variables["xx"]) ...
Ответ 3
// Example usage: defaultIfInexistent({myVar}, "default")
def defaultIfInexistent(varNameExpr, defaultValue) {
try {
varNameExpr()
} catch (exc) {
defaultValue
}
}