繁体   English   中英

如何使用Nashorn从Java方法返回真正的JavaScript数组?

[英]How can I return a real JavaScript array from a Java method with Nashorn?

我正在编写一些API,供一些JavaScript代码使用。 此API中的某些方法应返回真正的JavaScript数组。 不幸的是,这不起作用:

// MyApi.java
public class MyApi {
    String[] returnsJavaArray();

    List<String> returnsJavaList();
}

// MyScript.js
var api = getMyApi();
var strings = api.returnsJavaArray(); // Returns some kind of proxy
strings = api.returnsJavaList(); // Also a proxy

虽然代理支持像strings[i]这样的基本内容,但我需要将它们作为实际数组才能使用某些Array polyfill。 Nashorn最好的办法是什么?

到目前为止,我唯一的想法是编写整个MyApi的JavaScript包装器并使用Java.from(api.returnsJavaArray())包装结果, Java.from(api.returnsJavaArray())非常繁琐。

你应该让你的API返回一串js。 然后,在你的js文件中,你可以打电话

eval(stringOfJsReturnFromServer); 

使您的脚本运行

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM