Nashorn中新的Java字符串数组
我正在编写一个高性能的nashorn应用程序,我真正想做的是从javascript中找到与Nashorn中新的Java字符串数组,java,nashorn,Java,Nashorn,我正在编写一个高性能的nashorn应用程序,我真正想做的是从javascript中找到与新字符串[]{“foo”、“bar”、“noise”}等价的东西。从javascript数组到java数组的转换成本高得令人望而却步,这在每个flame图中都可以看到 到目前为止,我发现最好的方法是: {var-StringArray=Java.type('Java.lang.String[]);”;var-arr=new-StringArray(3));var-arr[0]='foo';var-arr[
新字符串[]{“foo”、“bar”、“noise”}
等价的东西。从javascript数组到java数组的转换成本高得令人望而却步,这在每个flame图中都可以看到
到目前为止,我发现最好的方法是:
{var-StringArray=Java.type('Java.lang.String[]);”;var-arr=new-StringArray(3));var-arr[0]='foo';var-arr[1]='bar';var-arr[2]='noise';arr;
}
但这太难看了。这是我能用的最好的语法吗
谢谢!您可以使用
Java.to()
完成此操作:
如果这段代码对您有效(对我有效,使用jjs 1.8.0_51进行测试),您可以创建一个函数来简化代码的可读性。如下所示:
function toJavaStringArray(a) {
return Java.to(a,"java.lang.String[]");
}
在不了解nashorn的情况下,是否可以在Java中创建一个方法(称之为
createStringArray(String…
),该方法接受一个varargs字符串参数,并返回该参数?何时调用该方法(var arr=createStringArray('foo','bar','noise');
),它是否具有您想要的性能,或者最终是否进行了转换?
function toJavaStringArray(a) {
return Java.to(a,"java.lang.String[]");
}