我正在使用 GWT 的生成器功能来抽象一个 javascript 库,根据某些标记接口中包含的方法自动生成代码,因此RemoteService
即使在幕后,它们也可以像 GWT 一样被对待,其他事情完全在发生。如何让 Eclipse 生成(并可能在其中更新/标记错误)关联的异步接口?请注意,我不是在问如何创建 a 的异步版本RemoteService
;我知道该怎么做。事实上,这里没有进行服务器通信。我希望做类似的事情,以便未来熟悉 GWT 的开发人员RemoteService
s 将了解如何使用我的抽象。我有“幕后”的工作,所以我不会在这里为那个 javascript 库的细节而烦恼。问题是如何根据一些任意规则创建和维护一个“异步”接口,以伴随开发人员提供的“同步”接口。
例如,一些未知的未来开发者可能会提供一个接口
public interface MyFoo extends MyMarkerI {
void doFoo(String someVar);
String doBar(String someOtherVar);
}
我想让eclipse生成“异步”接口
public interface MyFooAsync {
void doFoo(String someVar); //returns void; callback not needed.
void doBar(String someOtherVar, SomeCallback<String> callback);
}
可能将以下内容标记为错误(在 eclipse 中,我在编译时看到错误),因此开发人员可以重新生成它
public interface MyFooAsync { //eclipse red-squigly underline, missing a method
void doFoo(String someVar);
}
目前,我正在手动创建和更新异步版本。我可能不记得更改这两个接口,直到我去编译并且我得到一个错误。如果可能的话,我不想手动维护这两个接口,特别是因为可能有许多不同的接口被标记为要处理。我不是在寻找 GWT 的发电机;这就是我用来MyFooAsync
在编译时提供实现的东西。我需要在开发(即编译之前)时创建的 Async接口,以便我可以使用该类型。例如,
MyFooAsync foo = (MyFooAsync) GWT.create(MyFoo.class);
如果使用生成器创建是不可能的,因为 MyFooAsync 将不可用。
我想这可以通过为 eclipse 或编译器编写插件来实现,但我从来没有这样做过,也不知道从哪里开始。我什至找不到 GWT 用来生成和维护它们的异步接口的代码。
如果问题不清楚,我很乐意提供更多说明。任何帮助,将不胜感激。