Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Gwt 调用JSNI方法时的ClassCastException_Gwt_Classcastexception_Jsni - Fatal编程技术网

Gwt 调用JSNI方法时的ClassCastException

Gwt 调用JSNI方法时的ClassCastException,gwt,classcastexception,jsni,Gwt,Classcastexception,Jsni,我有以下GWT代码: 什么样的类可能无法转换?我找到了一个解决方法: 我替换了: instance.@my.package.name.MyImpl::onError(Ljava/lang/String;)("BROWSER"); 与: 及 与: 而且成功了 我不知道使用String类是否是个问题 instance.scan(new AsyncCallback<String>() { @Override public void onSuccess(String res

我有以下GWT代码:

什么样的类可能无法转换?

我找到了一个解决方法:

我替换了:

instance.@my.package.name.MyImpl::onError(Ljava/lang/String;)("BROWSER");
与:

与:

而且成功了

我不知道使用String类是否是个问题

instance.scan(new AsyncCallback<String>() {
    @Override
    public void onSuccess(String result) {
        Window.alert(result);
    }

    @Override
    public void onFailure(Throwable caught) {
        Window.alert(caught.getMessage());
    }
});
Caused by: java.lang.ClassCastException: null
    at java.lang.Class.cast(Class.java:2990)
    at com.google.gwt.dev.shell.JsValueGlue.get(JsValueGlue.java:163)
    at com.google.gwt.dev.shell.MethodDispatch.invoke(MethodDispatch.java:57)
    at com.google.gwt.dev.shell.OophmSessionHandler.invoke(OophmSessionHandler.java:172)
    at com.google.gwt.dev.shell.BrowserChannelServer.reactToMessagesWhileWaitingForReturn(BrowserChannelServer.java:337)
    at com.google.gwt.dev.shell.BrowserChannelServer.invokeJavascript(BrowserChannelServer.java:218)
    at com.google.gwt.dev.shell.ModuleSpaceOOPHM.doInvoke(ModuleSpaceOOPHM.java:136)
    at com.google.gwt.dev.shell.ModuleSpace.invokeNative(ModuleSpace.java:561)
    at com.google.gwt.dev.shell.ModuleSpace.invokeNativeVoid(ModuleSpace.java:289)
    at com.google.gwt.dev.shell.JavaScriptHost.invokeNativeVoid(JavaScriptHost.java:107)
    at my.package.name.MyImpl.scanJNSI(MyImpl.java)
    at my.package.name.MyImpl.scan(MyImpl.java:12)
instance.@my.package.name.MyImpl::onError(Ljava/lang/String;)("BROWSER");
instance.@my.package.name.MyImpl::onError(Lcom/google/gwt/core/client/JavaScriptObject;)({name:"BROWSER"});
private void onError(String obj) {
    callBack.onFailure(new Exception(obj));
}
private void onError(JavaScriptObject obj) {
    JSOModel jso = obj.cast();
    callBack.onFailure(new Exception(jso.get("name")));
}