Nashorn - 如何在Java中获取JS数组?

时间:2015-11-03 06:32:49

标签: javascript java arrays nashorn

我有这个JS功能:

function newJSArray() {return []}

我正在尝试使用以下方法返回Java:

public static NativeArray newArray() throws Exception {
    return (NativeArray)invocable.invokeFunction("newJSArray");
}

但是当我尝试调用此函数时它会抛出异常:

Exception in thread "main" java.lang.NoSuchMethodError: ....JavaScript.newArray()Ljdk/nashorn/api/scripting/JSObject;
    at ....

我想特别给一个JS数组,所以我可以调用jsArr1.concat(jsArr2)。

2 个答案:

答案 0 :(得分:2)

是的,所有API方法都将JavaScript对象作为jdk.nashorn.api.scripting.JSObject的实例返回。您可以通过JSObject.getSlot方法访问该JS数组的成员。

答案 1 :(得分:0)

发现返回的对象是JSObject。