我在 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
提交
取消