返回的数组为obj类型,可通过ScriptObjectMirror进行转换,获取数组中的值。举例:
public void testEngine() { String script = "function getNum(num,num1){if(num%7==0){ return [5+5*(parseInt(5*(num-parseInt(num/29)*28)/28)+1),100]}else{return [(5+num1),num];}} getNum(num,num1)"; try{ ScriptEngine engine=new ScriptEngineManager().getEngineByName("JavaScript"); Compilable compilable = (Compilable) engine; Bindings bindings = engine.createBindings(); //Local级别的Binding CompiledScript JSFunction = compilable.compile(script); //解析编译脚本函数 bindings.put("num",7000); bindings.put("num1",100); Object result=JSFunction.eval(bindings); //遍历所有值 ScriptObjectMirror scpt=(ScriptObjectMirror) result; for(String key:scpt.keySet()) { System.out.println("key:"+key+" value:"+scpt.get(key)); } }catch (ScriptException e) { e.printStackTrace(); } catch (Exception e) { e.printStackTrace(); } }