如何使用Rhino(sum()
,而不是org.mozilla.javascript
)调用以下javax.script
函数,将Java方法作为回调传递(或任何其他允许我使用的方法)一旦我有Rhino Function
对象代表它,我会收到Java中的结果吗?
function sum(a, b, successHandler) {
successHandler(a + b);
}
答案 0 :(得分:3)
这是我找到的解决方案:
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
是一个如此庞大的界面,但即使所有方法都没有真正的实现,一切似乎都能正常工作。
但这并不完美。我希望有更好的方法。