在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
是否有一个选项可以为未定义的对象评估为 null/false,比如在 JavaScript 中?
我知道一个选项将是执行类似“this.x&this.y”而不是“x&y”的操作,但我无法控制该字符串(用户输入)。