Javascript Nashorn给出了Array.from(字符串)的错误
我有一个javascript文件fun.jsJavascript Nashorn给出了Array.from(字符串)的错误,javascript,java,arrays,nashorn,Javascript,Java,Arrays,Nashorn,我有一个javascript文件fun.js function fun1(){ var str='apple'; var charArray = Array.from(str); return charArray; } 我使用nashorn将这个字符返回到java代码中。但纳肖恩作为例外- javax.script.ScriptException:TypeError:Array.from不是第25行的函数 如何将Array.from()与nashorn一起使用,或者是否
function fun1(){
var str='apple';
var charArray = Array.from(str);
return charArray;
}
我使用nashorn将这个字符返回到java代码中。但纳肖恩作为例外-
javax.script.ScriptException:TypeError:Array.from不是第25行的函数
如何将Array.from()与nashorn一起使用,或者是否有任何方法将字符串转换为js中与nashorn兼容的字符集。
我的java代码是-
System.out.println("intialising parser....");
ScriptEngine engine= new ScriptEngineManager().getEngineByName("nashorn");
engine.eval(new FileReader("index.js"));
Invocable invocable= (Invocable) engine;
Object obj = (Object)invocable.invokeFunction("fun1");
还有,它是
String.toCharArray()
,因为Nashorn允许您使用Java方法。所以你可以
System.out.println("initializing parser....");
String js = "function fun1() { return 'apple'.toCharArray() }";
ScriptEngine engine = new ScriptEngineManager().getEngineByName("nashorn");
try {
engine.eval(js);
Invocable invocable = (Invocable) engine;
Object obj = (Object) invocable.invokeFunction("fun1");
System.out.println(Arrays.toString((char[]) obj));
} catch (Exception e) {
e.printStackTrace();
}
这就产生了
initializing parser....
[a, p, p, l, e]
后来我发现事情就这么简单-
function fun1(){
var str='apple';
var charArray =str.split('');
return charArray;
}
它还与nashorn兼容。这可能是正确的,但在我的情况下,拆分(“”)是有效的。感谢您的响应,拆分(“”)将创建N个字符串,其中包含一个字符。调用toCharArray绝对是有效的——因为这样会创建实际的Java字符[]