使用Java接口了解GWT.create()

时间:2011-06-24 05:47:13

标签: java gwt interface

我正在接受别人的工作,这让我感到困惑:

有2个接口

public interface WebAuthenticationServiceAsync {
void authenticate(String userName, String password, AsyncCallback callback);}

public interface WebAuthenticationService extends RemoteService {
ArrayList authenticate(String userName, String password);    }

没有类可以在整个项目中实现这些

然后我得到了:

authenticationService = (WebAuthenticationServiceAsync)GWT.create(WebAuthenticationService.class);

1.-我明白.create()是GWT的反射机制,但两者都是接口,我不知道我在做什么或者是怎么做。

2.-我知道使用void authenticate()替换Arraylist authenticate(),如果是这样的话我应该只做WebAuthemticationServiceAsync扩展RemoteService,并摆脱WebAuthenticationService吗?

1 个答案:

答案 0 :(得分:2)

这些是GWT-RPC 合同,您可以在以下网址阅读更多内容:http://code.google.com/webtoolkit/doc/latest/DevGuideServerCommunication.html#DevGuideRemoteProcedureCalls

BTW,GWT.create()不是关于反射,而是关于用另一个替换一个类型(比如说,你有一个基本实现,可以是一个具体的或抽象的类,或者一个接口,比方说, Internet Explorer,您将使用特定的实现)或生成类型。 GWT-RPC属于后一种情况:接口的实现将在编译时生成,而不是GWT.create()调用。 在http://code.google.com/webtoolkit/doc/latest/DevGuideCodingBasicsDeferred.html了解更多关于“延迟绑定”(即在编译时绑定实际类型而不是“编码时间”)