GWT-RPC序列化的ImmutableCollection声明

时间:2011-05-13 05:32:51

标签: serialization guava gwt-rpc

我的理解是,为GWT RPC序列化的DTO应该出于性能原因声明其最低可能实现类型的字段。例如,有人应该ArrayList优先于ListCollection,而无视我们通常收到的相反建议(例如,Effective Java,第52项)。

使用JDK集合,这没有问题 - 大部分时间,MapHashMapSetHashSet和{{1是List。但是,我正在使用Guava的不可变*集合(例如,ImmutableList),我真的不知道哪个实现最终会得到。我是否需要将其吸收并让GWT模仿所有这些,或者有没有办法在这里进行损害控制?

1 个答案:

答案 0 :(得分:4)

右。只需使用API​​中最具体的类型即可。

使用@GwtCompatible(serializable = true)注释的子类型可通过GWT RPC进行序列化,除非另有指定(由另一个@GwtCompatible(serializable = false))。您可以安全地使用Immutable*类型作为GWT RPC接口。