Java7 で次のコードを実行する
ScriptEngine scriptEngine = new ScriptEngineManager().getEngineByName("js");
Bindings b = scriptEngine.createBindings();
b.put("x", true);
scriptEngine.eval("x&y", b);
エラーが発生します
sun.org.mozilla.javascript.internal.EcmaError: ReferenceError: "b" is not defined. (<Unknown Source>#1) in <Unknown Source> at line number 1
JavaScript のように、未定義のオブジェクトを null/false に評価するオプションはありますか?
「x&y」の代わりに「this.x&this.y」のようなことを行うオプションがあることは知っていますが、その文字列 (ユーザーが入力したもの) を制御することはできません。