sum()
Rhino ( org.mozilla.javascript
, not ) を使用して次の関数を呼び出し、javax.script
コールバックとして Java メソッドを渡すには (または Java で結果を受け取ることができるその他の方法)、Function
それを表す Rhino オブジェクトを取得したら、どうすればよいでしょうか?
function sum(a, b, successHandler) {
successHandler(a + b);
}
sum()
Rhino ( org.mozilla.javascript
, not ) を使用して次の関数を呼び出し、javax.script
コールバックとして Java メソッドを渡すには (または Java で結果を受け取ることができるその他の方法)、Function
それを表す Rhino オブジェクトを取得したら、どうすればよいでしょうか?
function sum(a, b, successHandler) {
successHandler(a + b);
}
これは私が見つけた解決策です:
function.call(context, scope, null, new org.mozilla.javascript.Function() {
@Override
public Object call(Context cx, Scriptable scope, Scriptable thisObj, Object[] args) {
System.out.println(args[0]);
},
// ...
});
これが非常に大きなインターフェースであることは残念ですorg.mozilla.javascript.Function
が、必要なメソッドが実際に実装されていなくても、すべてが正しく機能しているように見えます。
ただし、これは正確にはエレガントではありません。もっと良い方法があればいいのに。