GWT RPC。当onSuccess()方法调用?

时间:2012-02-14 06:03:49

标签: java gwt

如果RPC方法返回Void,那么它会调用onSuccess()方法吗?或者我必须返回一些值以使RPC调用onSuccess()方法?

2 个答案:

答案 0 :(得分:5)

如果异步请求成功完成,则无论其返回值是否为onSuccess()方法都将被调用。因此,您不必返回不必要的对象。

  

void onSuccess(T result)异步调用完成时调用   成功。 From documentation

答案 1 :(得分:3)

如果服务器端方法返回一个对象,代码将如下所示:

rpcService.doSomething(ArgumentToServerSide, new AsyncCallback<ReturnType>() {
        @Override
        public void onSuccess(ReturnType result) {
                    // DO what you expect on Success 
                    }
                    @Override
        public void onFailure(Throwable caught) {
                    // DO what is expected on failure
                    }

如果服务器端方法没有返回任何内容,即返回类型为void,那么您的代码将如下所示:

rpcService.doSomething(ArgumentToServerSide, new AsyncCallback<Void>() {
        @Override
        public void onSuccess(Void result) {
                    // DO what you expect on Success 
                    }
                    @Override
        public void onFailure(Throwable caught) {
                    // DO what is expected on failure
                    }

您是否注意到onSuccess方法获取了类型Void的对象,该对象是关键字void的占位符(在http://docs.oracle.com/javase/6/docs/api/java/lang/Void.html检查文档)

因此,如果您的方法返回某种类型,onSuccessonFailure将返回该类型,否则它将返回类型Void 希望这会有所帮助。