Сериализация GWT не должна возвращать интерфейсы: как насчет параметров и содержащихся объектов?


person user711413    schedule 15.01.2013    source источник


Ответы (1)


Из связанного вопроса ясно, что он применяется рекурсивно (и как только вы поймете, почему вы должны использовать как можно больше производных типов, становится очевидным, что это рекурсивно).

Это также верно для аргументов метода, а не только для возвращаемых типов и их полей: если вы отправляете List<X>, то GWT должен сгенерировать код сериализации для всех List классов: ArrayList, LinkedList и т. Д.

И, конечно же, то же самое относится к классам, а не только к интерфейсам: AbstractList ничем не отличается от List.

А поскольку генерация происходит до оптимизации, будут включены все возможные классы из исходного пути, а не только те, которые вы используете в своем коде; а затем они встают на пути этапа оптимизации, поскольку все эти классы сейчас используются вашим приложением.

Поэтому правило таково: по возможности используйте наиболее конкретные типы. Вывод: не бойтесь DTO, не пытайтесь любой ценой отправлять объекты своей компании / домена.

person Thomas Broyer    schedule 15.01.2013
comment
Спасибо ... В этом есть смысл, я просто хотел убедиться. - person user711413; 17.01.2013