в моем проекте gwt Я отправляю объекты с каналом gwt api клиенту и использую Autobean для кодирования и декодирования этих объектов. все работает нормально, я получаю действительную строку json на клиенте и могу снова декодировать эту строку json в AutoBean. только autobean.as() не возвращает ничего, кроме самого автообмена.Autobean возвращает autobean после использования as()
IContactDto и ContactDto содержат только геттеры и сеттеры. и это facbory я написал
AutoBeanFactory
public interface DtoFactory extends AutoBeanFactory{
AutoBean<IContactDto> contactDto(IContactDto contactDto);
}
Серверный код
DtoFactory dtoFactory = AutoBeanFactorySource.create(DtoFactory.class);
AutoBean<IContactDto> iContactDto = dtoFactory.contactDto(contactDto);
String sJson = AutoBeanCodex.encode(autoBean).getPayload();
// sending this json to the client
стороне клиента код
это код я использую для декодирования допустимой строки json
// sJson string looks like {"id":"6473924464345088", "lastUpdate":"1475914369346", "fullName":"testName1","givenName":"testName2"}
DtoFactory factory = GWT.create(DtoFactory.class);
AutoBean<IContactDto> autoBean = AutoBeanCodex.decode(factory, IContactDto.class, sJson); // debugger: IContactDtoAutoBean_1_g$
IContactDto iDto = autoBean.as(); // debugger still shows IContactDtoAutoBean$1_1_g$
я могу реально использовать методы получения и установки этого объекта, но как только я пытаюсь продолжать работать это те объекты, которые я получаю проблемы с сигнатурой типа.
любые идеи, как я могу получить объект, который я закодировал снова?
Что вы подразумеваете под «у меня проблема с типом подписи»? Что вы хотите сделать, это не работает. Для меня, если вы «можете реально использовать геттеры и сеттеры», тогда все работает по назначению. –
Это ошибка, которую я получаю, когда пытаюсь передать объект Autobean методу, который проверяет IContactDto. Просто невозможно включить автообъем в первоначальный класс. Я могу восстановить объект IContacDto, взяв значения автозахватчика, но это действительно раздражает, а не так, как я думаю, он должен работать. в документации указано, что метод as() возвращает исходный класс, поэтому я задаюсь вопросом, почему он действует. – richard
Ваши ожидания неверны. Я проверю документ, но вы можете гарантировать, что он не должен работать так, как вы ожидаете его работы. –