从JavaScript向Java调用时出现不可恢复的stackoverflow错误
我遇到了一个我无法理解的“不可恢复的堆栈溢出错误”。从:您需要创建一个接口对象(任何类),并通过调用从JavaScript向Java调用时出现不可恢复的stackoverflow错误,java,javascript,javafx,stack-overflow,Java,Javascript,Javafx,Stack Overflow,我遇到了一个我无法理解的“不可恢复的堆栈溢出错误”。从:您需要创建一个接口对象(任何类),并通过调用JSObject.setMember()让JavaScript知道它 以下是Java代码共享和使用interface对象: // somewhere in the code JSObject window = (JSObject) engine.executeScript("window"); window.setMember("foo", new Foo()); // <-- shares
JSObject.setMember()
让JavaScript知道它
以下是Java代码共享和使用interface对象:
// 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事件触发它,就会发生这种情况。答案在评论中,我不敢相信我已经尝试了好几个小时了,这是一个非常快速的解决方案
事实证明,公开的接口必须是公共的我尝试过它,它对我来说是有效的(Java1.8.0\u11)。如果你发布一个帖子,也许会有帮助。我认为Foo应该是公开的,否则我觉得它看起来没问题(不用尝试)。您链接的文档是基于早期开发人员预览的旧博客文章。更现代的文档可用于。我喜欢您如何使用stackoverflow从无法恢复的stackoverflow错误中获得恢复帮助。