0

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」のようなことを行うオプションがあることは知っていますが、その文字列 (ユーザーが入力したもの) を制御することはできません。

4

1 に答える 1

0

Rhino コードを少しブラウジングしましたが、そのようなオプションはないようです。

最後に「this」を追加します。各変数の前。これは決して望ましい解決策ではありません(私は自分の答えさえ受け入れません:))が、当面は他にありません。

于 2014-06-08T17:07:00.787 に答える