2011-05-13 87 views
3

我的理解是,出于性能原因,要序列化为GWT RPC的DTO应该声明其最低可能实现类型的字段。例如,我们应该倾向于ArrayList而不是ListCollection,这与我们通常接受的建议相反(例如,Effective Java,第52项)。GWT-RPC序列化的ImmutableCollection声明

随着JDK的集合,这是没有问题的,大多数时候,一个MapHashMap,一个SetHashSetListArrayList。但是,我正在使用Guava的Immutable *集合(例如ImmutableList),我真的不知道我最终会得到哪个实现。我是否需要吸取它并让GWT模拟所有这些,或者有什么方法可以在这里进行破坏控制?

回答

4

没错。只需使用属于API一部分的最具体的类型即可。

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