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

标签 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)。

最佳答案

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

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

相关文章:

arrays - 如何使用循环生成的数组作为数据帧中的列来创建数据帧

python - 创建具有重复模式的 numpy 数组

javascript - Angular 5 : ERROR TypeError: Cannot read property 'toLowerCase' of undefined

java - CompareTo 方法(在 Comparable 接口(interface)中)是递归的吗?

java - 无法在 SQL Server 中插入查询

java - 使用 string.reverse 最长字符串回文

c# - 这是如何定义的?

javascript - 如何在 Ionic 框架中使用数组来计算价格

javascript - AngularJS/JavaScript 从另一个对象创建新对象

Javascript - 如何识别圆弧的碰撞