Nashorn - 如何在 Java 中获取 JS 数组?
Nashorn - How to get a JS Array in Java?
我有这个 JS 函数:
function newJSArray() {return []}
我正在尝试 return in 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).
发现返回的对象是一个JSObject。
是的,所有 API 方法 return JavaScript 对象作为 jdk.nashorn.api.scripting.JSObject 的实例。您可以通过 JSObject.getSlot 方法访问该 JS 数组的成员。
我有这个 JS 函数:
function newJSArray() {return []}
我正在尝试 return in 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).
发现返回的对象是一个JSObject。
是的,所有 API 方法 return JavaScript 对象作为 jdk.nashorn.api.scripting.JSObject 的实例。您可以通过 JSObject.getSlot 方法访问该 JS 数组的成员。