如何将JS数组转换为本地数组?
在Rhino转换看起来像(
Scala代码):
val eng = (new javax.script.ScriptEngineManager).getEngineByName("JavaScript")
val obj = eng.eval("[1,2,3,4]")
val arr = obj.asInstanceOf[sun.org.mozilla.javascript.internal.NativeArray]
在Nashorn NativeArray中没有,我找不到有关转换的任何文档.
从Java(和Scala),您还可以在jdk.nashorn.api.scripting.ScriptUtils类上
调用convert
方法.例如.来自Java:
import jdk.nashorn.api.scripting.ScriptUtils;
...
int[] iarr = (int[])ScriptUtils.convert(arr,int[].class)
我的Scala不太流利,但我相信是等同的:
val iarr = ScriptUtils.convert(arr,Array[Int]).asInstanceOf(Array[Int])