Понимание GWT.create () с интерфейсами Java - PullRequest
2 голосов
/ 24 июня 2011

Я подбираю чужую работу, и это ставит меня в тупик:

Получил 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.- Я знаю, что приведение заменяет Arraylist authenticate () на void authenticate (), если в таком случае я должен просто сделать WebAuthemticationServiceAsync расширяет RemoteService и избавиться от WebAuthenticationService один?

1 Ответ

2 голосов
/ 24 июня 2011

Это GWT-RPC контракты , вы можете прочитать больше на: http://code.google.com/webtoolkit/doc/latest/DevGuideServerCommunication.html#DevGuideRemoteProcedureCalls

Кстати, GWT.create() не о отражении, а о замене типа другим (скажем, у вас есть базовая реализация, которая может быть конкретным или абстрактным классом, или интерфейсом, и, скажем, для Internet Explorer , вы будете использовать конкретную реализацию вместо) или создания типа. GWT-RPC находится в последнем случае: реализация для интерфейсов будет сгенерирована во время компиляции и использована вместо вызова GWT.create(). Узнайте больше о «отложенном связывании» (то есть о связывании фактического типа во время компиляции, а не о «времени кодирования») по адресу http://code.google.com/webtoolkit/doc/latest/DevGuideCodingBasicsDeferred.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...