【发布时间】:2018-04-18 12:14:10
【问题描述】:
我使用 Java Nashorn 引擎 来执行 Javascript 代码。我使用ScriptEngine object 的eval 方法,该方法具有“绑定”的第二个参数。我用它来将变量传递给引擎。它适用于 Object 类型和原始包装类,但是当我尝试传递 ArrayNode 时,它不能作为 JavaScript 数组工作,我不知道为什么。
示例代码:
String scriptText = "myarray[1] = 666";
ScriptEngine engine = new ScriptEngineManager().getEngineByName("nashorn");
Bindings bindings = engine.createBindings();
ArrayNode arrayNode = mapper.createArrayNode();
array.add(1);
array.add(2);
array.add(3);
bindings.put("myarray", arrayNode);
engine.eval(scriptText, bindings);
这应该会更改绑定对象中的 myarray 值,但不会。
我做错了什么?
【问题讨论】: