我在 Java ScriptEngine 中执行一组 JavaScript 方法时遇到问题。我使用 JDK 8。例子@Testpublic void arrayMethod() throws Exception { ScriptEngine engine; engine = new ScriptEngineManager().getEngineByName("JavaScript"); String script = "function f1() { return [\"string2\",\"string3\"].some(item => o1==item); }"; engine.eval(script); engine.put("o1", "string1"); Boolean result = (Boolean) (((Invocable) engine).invokeFunction("f1")); LOG.info(result.toString());}结果java.lang.AssertionError:为 :1 生成字节码失败at jdk.nashorn.internal.codegen.CompilationPhase$BytecodeGenerationPhase.transform(CompilationPhase.java:431)at jdk.nashorn.internal.codegen.CompilationPhase.apply(CompilationPhase.java:624)at jdk.nashorn.internal.codegen.Compiler.compile(Compiler.java:655)我尝试使用其他方法(每种方法等)得到相同的结果。没有语法错误,但 java 脚本编译器无法创建代码。我的 ScriptEngine 版本没有包含数组的方法。它返回语法错误。如何在 ScriptEngine 中使用数组?
添加回答
举报
0/150
提交
取消