我有这个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)。

最佳答案

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

关于javascript - Nashorn-如何用Java获取JS数组?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33492767/

10-10 16:26