4

我目前正在使用 Rhino 的 javax 实现。默认情况下,Rhino 使用包装器来返回 Java 对象。Nashorn 有类似的行为还是默认返回 JavaScript 对象?

谢谢

4

2 回答 2

4

看起来它尽最大努力返回明智的对象。使用此代码,然后更改 XXX:

ScriptEngineManager mgr = new ScriptEngineManager();
ScriptEngine engine = mgr.getEngineByName("nashorn");
engine.eval("function test() { return XXX; };");
Object result = ((Invocable)engine).invokeFunction("test");
System.out.println(result.getClass().getName());

产量:

return 'hello world' = java.lang.String
return 1 = java.lang.Integer
return { name: 'Hello' } = jdk.nashorn.api.scripting.ScriptObjectMirror
于 2013-06-24T04:35:05.817 回答
1
于 2013-08-26T14:52:50.313 回答