Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/370.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Nashorn中新的Java字符串数组_Java_Nashorn - Fatal编程技术网

Nashorn中新的Java字符串数组

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[

我正在编写一个高性能的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[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[]");
}