2014-06-07 37 views
0

執行以下代碼在Java7不確定對象的Java

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」,但我無法控制該字符串(用戶輸入)。

回答

0

我瀏覽了一下Rhino代碼,似乎沒有這樣的選擇。

最後我會追加「這個」。在每個變量前面。這不是一個理想的解決方案(我甚至不會接受我自己的答案:)),但是暫時我沒有別的了。