1
を使用してJSを実行しているとき、私はJavaでたScriptEngineを経由していくつかの簡単なJavaScript関数を実行しようとしているが、私は次のエラーを取得しています:「例外TypeError:関数マップが見つかりません」のJavaたScriptEngine
Exception in thread "main" javax.script.ScriptException: sun.org.mozilla.javascript.internal.EcmaError: TypeError: Cannot find function map. (<Unknown source>#8) in <Unknown source> at line number 8
at com.sun.script.javascript.RhinoScriptEngine.invoke(RhinoScriptEngine.java:230)
at com.sun.script.javascript.RhinoScriptEngine.invokeFunction(RhinoScriptEngine.java:188)
at com.example.TestClass.main(TestClass.java:96)
私のコード:
test.js
function getRoots() {
var numbers = [1, 4, 9];
var roots = numbers.map(Math.sqrt);
println(roots);
}
TestClassをメイン方法
public static void main(String[] args) throws IOException, InvalidFormatException, ScriptException, NoSuchMethodException {
ScriptEngineManager factory = new ScriptEngineManager();
ScriptEngine engine = factory.getEngineByName("JavaScript");
engine.eval(new FileReader("C:/path/to/my/js/file/test.js"));
Invocable inv = (Invocable) engine;
inv.invokeFunction("getRoots");
}
012なぜそのコードを実行するときに見つからない
map
機能は次のとおりです。
エラーがvar roots = numbers.map(Math.sqrt);
私は理解していないことである行に表示されますか?
あなたは絶対的に正しいです。ありがとう! – peterremec