2011-05-13 2 views
3

Je crois comprendre que les DTO à sérialiser pour GWT RPC doivent déclarer leurs champs du type d'implémentation le plus bas possible pour des raisons de performances. Par exemple, on devrait préférer ArrayList sur List ou Collection, au mépris des conseils que nous recevons normalement à l'effet contraire (par exemple, Java efficace, article 52).Déclarations ImmutableCollection pour la sérialisation GWT-RPC

Avec les collections de JDK, ce n'est pas problème la plupart du temps, un Map est un HashMap, un Set est un HashSet et un List est un ArrayList. Cependant, j'utilise les collections Immuables * de Guava (par exemple, ImmutableList), où je ne sais vraiment pas quelle implémentation je vais obtenir. Ai-je besoin de juste le sucer et laisser GWT les émuler tous, ou y at-il un moyen de contrôler les dégâts ici?

Répondre

4

Droite. Utilisez simplement le type le plus spécifique qui fait partie de l'API.

Les sous-types qui sont annotés avec @GwtCompatible(serializable = true) sont sérialisables sur GWT RPC sauf indication contraire (par un autre @GwtCompatible(serializable = false)). Vous pouvez utiliser en toute sécurité les types Immutable* en tant qu'interfaces RTC GWT.

Questions connexes