22
私は今、私がしたいのですがJavascriptがBindメソッド呼び出し
function js_main(args){
/* some code */
var x = api_method1(some_argument);
/* some code */
}
をファイルと私はjavax.scripting
で通常の方法
ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine engine = manager.getEngineByName("javascript");
engine.eval(...);
それを実行しようとしていると仮定JavaクラスでJavascriptでapi_method1
への呼び出しを処理します。私は、呼び出しのスクリプトが呼び出されることになる(エンジンと同じクラスに)方法
public Object api_method1(Object arg){ ... }
api_method1(arg)
呼び出しすなわち毎回結合/マッピングのいくつかの種類を持っていたいです。
これを達成できますか?
(プリミティブの他に)メソッドとの間でデータをマーシャリングする方法について教えてください。 – emesx
プリミティブ以外のデータを渡す場合は、JSONを使用できます。 Javaコードは、JSONライブラリを使用してJSONをシリアル化/逆シリアル化できます。 – sperumal
あなたはそれのためにかなりあなた自身である。あなたはJSON(JavaScriptから簡単に)にシリアライズして、Javaで逆シリアル化することができます(それほど簡単ではありませんが、実行可能です)。あるいは、さまざまなユーティリティを公開して、他のJavaオブジェクト型を組み合わせることもできます。 – Pointy