我遇到了#34;不可恢复的堆栈溢出错误"我无法弄明白。在docs:中,您需要创建一个(任何类的)接口对象,并通过调用JSObject.setMember()
使其为JavaScript所知。
这里是Java代码共享和使用接口对象:
// somewhere in the code
JSObject window = (JSObject) engine.executeScript("window");
window.setMember("foo", new Foo()); // <-- shares
window.call("testFoo"); // <-- uses
// somewhere else
class Foo {
public void bar() {
System.out.println("baz");
}
}
以下是使用该对象的JavaScript代码:
window.testFoo = function() {
window.foo.bar();
}
如果我像上面的show一样手动触发它,或者如果我通过一些JavaScript事件触发它,就会发生这种情况。
答案 0 :(得分:1)
答案在评论中,我简直不敢相信我已经在几个小时内尝试了所有内容,这是一个非常快速的解决方案。
事实证明,公开的界面必须公开。