Объявления ImmutableCollection для сериализации GWT-RPC - PullRequest
3 голосов
/ 13 мая 2011

Насколько я понимаю, DTO, которые будут сериализованы для GWT RPC , должны объявлять свои поля минимально возможного типа реализации из соображений производительности. Например, следует отдать предпочтение ArrayList над List или Collection, вопреки совету, который мы обычно получаем наоборот (например, Effective Java, Item 52).

С коллекциями JDK это не проблема - в большинстве случаев Map - это HashMap, Set - это HashSet, а List - это ArrayList. Однако я использую коллекции Guava Immutable * (например, ImmutableList ), где я действительно не знаю, какую реализацию я получу в итоге. Нужно ли мне просто смириться с этим и позволить GWT подражать им всем, или здесь есть какой-нибудь способ контролировать урон?

1 Ответ

4 голосов
/ 13 мая 2011

правый.Просто используйте наиболее конкретный тип, который является частью API.

Подтипы, помеченные @GwtCompatible(serializable = true), сериализуются через GWT RPC, если не указано иное (другим @GwtCompatible(serializable = false)).Вы можете безопасно использовать Immutable* типы в качестве интерфейсов GWT RPC.

...