0
以下のコードはReferenceErrorをスローします: "a"は定義されていません。 それを回避し、変数をnullとして扱うことはできますか?nashorn - 回避する方法 "ReferenceError:" a "は定義されていません"
ScriptEngine engine = new ScriptEngineManager().getEngineByName("nashorn");
Map<String, String> s = new HashMap<String, String>();
// s.put("a", "a");
Bindings bindings = engine.createBindings();
bindings.putAll(s);
Object res = engine.eval("!a", bindings);
System.out.println(res);
Nashornには慣れていませんが、ECMAScript標準と互換性がないため、これは疑問です。それを 'null'にしたいのであれば、そのように宣言しなければなりません。多分、Nashornは地球環境の束縛を事前定義する方法を持っています。 –