web-dev-qa-db-ja.com

スクリプトエンジンで実行されているGroovyコード内から変数が存在するかどうかを確認するにはどうすればよいですか?

スクリプトエンジンで実行されているGroovyコード内から変数が存在するかどうかを確認するにはどうすればよいですか?

変数は ScriptEngineのputメソッド によって配置されました

15
ycomp

groovy.lang.Script には、メソッドpublic Binding getBinding()があります。メソッドpublic boolean hasVariable(String name)groovy.lang.Binding も参照してください。

したがって、次のように変数の存在を簡単に確認できます。

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

スクリプトエンジンによって挿入された変数は、binding.variablesので、次のことができます。 xxという名前の変数を確認します。

if (binding.variables["xx"]) ...
3
Valdi_Bo
// Example usage: defaultIfInexistent({myVar}, "default")
def defaultIfInexistent(varNameExpr, defaultValue) {
    try {
        varNameExpr()
    } catch (exc) {
        defaultValue
    }
}
1