yco*_*omp 16 java scripting groovy jenkins java-scripting-engine
如何确定Scripting Engine中运行的Groovy代码中是否存在变量?
Ali*_*rkh 22
在groovy.lang.Script中有一个方法public Binding getBinding().另请参见groovy.lang.Binding with method public boolean hasVariable(String name).
因此你可以简单地检查变量存在之类的
if (binding.hasVariable('superVariable')) {
// your code here
}
Run Code Online (Sandbox Code Playgroud)
// Example usage: defaultIfInexistent({myVar}, "default")
def defaultIfInexistent(varNameExpr, defaultValue) {
try {
varNameExpr()
} catch (exc) {
defaultValue
}
}
Run Code Online (Sandbox Code Playgroud)
脚本引擎注入的变量保存在 中
binding.variables,因此您可以例如检查名为 的变量xx:
if (binding.variables["xx"]) ...
Run Code Online (Sandbox Code Playgroud)
对此处给出的现有解决方案的改进/sf/answers/3941466231/ -
def defaultIfInexistent(varName, defaultValue){
try{
varName.toString()
return varName
}catch(ex){
return defaultValue
}
}
Run Code Online (Sandbox Code Playgroud)