Java の ScriptEngine を使いたいのですが、以下のように JavaScript の分割関数に問題があります。
ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine engine = manager.getEngineByName("javascript");
Bindings bindings = engine.createBindings();
bindings.put("example", "123/456/789");
String s1 = "var obj = example.split(\"/\"); print(obj[0]);";
Object result = engine.eval(s1, bindings);
System.out.println(result);
スクリプトを評価するとき。結果がnullであるため、このコードは「123null」を出力します。次のように print の代わりに return ステートメントを試したとき:
String s1 = "var obj = example.split(\"/\"); return obj[0];";
例外をスローします:
スレッド「メイン」での例外 javax.script.ScriptException: sun.org.mozilla.javascript.internal.EvaluatorException: 行番号 1 の無効な戻り値 (#1)
では、この分割されたネイティブ配列から最初のインデックスの値を取得するにはどうすればよいでしょうか?