GWT-使用AsyncCallback的子类定义异步服务

GWT-使用AsyncCallback的子类定义异步服务,gwt,gwt-rpc,Gwt,Gwt Rpc,GWT是否允许使用AsyncCallback的自定义子类定义异步服务 基本上,有人建议我做一些类似的事情,但这样做的方式是使用自定义子类定义异步服务(或者更确切地说,使用带有默认错误处理的函数接口,因为这将允许简单的lambda使用) 换句话说,当我 public interface MyService extends RemoteService { Object doTheThing(); } 我想换一个 public interface MyServiceAsync { v

GWT是否允许使用AsyncCallback的自定义子类定义异步服务

基本上,有人建议我做一些类似的事情,但这样做的方式是使用自定义子类定义异步服务(或者更确切地说,使用带有默认错误处理的函数接口,因为这将允许简单的lambda使用)

换句话说,当我

public interface MyService extends RemoteService {
    Object doTheThing();
}
我想换一个

public interface MyServiceAsync {
    void doTheThing(AsyncCallback<Object> callback);
}
公共接口MyServiceAsync{
void doTheThing(异步回调);
}

公共接口MyServiceAsync{
void doTheThing(MyCallback);
}
其中MyCallback扩展了AsyncCallback

这将在所有服务中完成,任何需要重构的都将被适当重构

当前这样做只会在类上产生错误
MyServiceAsync缺少方法doTheThing(AsyncCallback)
,并且方法上的最后一个参数必须是AsyncCallback类型


一开始链接的问题是我唯一能在谷歌上搜索到的,其他一切都是关于正常异步服务使用的。

是的,你可以,但正如答案所指出的,你必须编写自己的代理。你一定要加入RPC吗?如果没有,请查看Dominokit/DominoRESTAdGithub。DominoREST已经实现了类似的功能。@ElHoss这是一个预先存在的项目,所以将其全部更改为不同的功能会有问题。你有没有一个实际的例子?你的意思是什么?在我看来,链接帖子上的答案似乎是关于“在幕后”包装回调,而不是更改异步接口定义中使用的内容。MyCallback是什么样子的?@ElHoss大致类似于
public interface MyCallback{default void onFailure(Throwable t){showInfoBoxWithError();}
MyCallback应该扩展AsyncCallback
public interface MyServiceAsync {
    void doTheThing(MyCallback<Object> callback);
}