从JavaScript转换为Java时出现不可恢复的堆栈溢出错误

时间:2015-04-14 09:44:01

标签: java javascript javafx stack-overflow

我遇到了#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事件触发它,就会发生这种情况。

1 个答案:

答案 0 :(得分:1)

答案在评论中,我简直不敢相信我已经在几个小时内尝试了所有内容,这是一个非常快速的解决方案。

事实证明,公开的界面必须公开