还有就是可以在GWT使用允许外部JavaScript执行Java方法这个$输入方法。 你可以看到他们的文档中解释https://developers.google.com/web-toolkit/doc/latest/DevGuideCodingBasicsJSNI?hl=fr#calling
然而,该示例中,只有静态方法。 我试图写一个非静态方法,当我尝试调用它,我得到一个异常:
java.lang.ClassCastException: Cannot cast com.google.gwt.core.client.JavaScriptObject$ to mypackage.MyModule
这里是我的代码:
public native void setRefreshModuleCallback() /*-{
$wnd.refreshModule = $entry(function() {
this.@mypackage.MyModule::refreshModuleJava();
alert('test');
});
}-*/;
public void refreshModuleJava() {
logger.log(Level.WARNING, "REFRESH");
}
我觉得很搞笑的是,警报被调用时,我看到在浏览器中的结果,但电话之前不被执行。
你知道,如果它实际上可以做这样的事情?