Serialization GWT-RPC序列化的ImmutableCollection声明

Serialization GWT-RPC序列化的ImmutableCollection声明,serialization,guava,gwt-rpc,Serialization,Guava,Gwt Rpc,我的理解是,出于性能原因,要序列化的DTO应该声明其字段的最低实现类型。例如,人们应该支持ArrayList而不是List或Collection,无视我们通常收到的相反建议(例如,有效Java,第52项) 对于JDK集合,这在大多数情况下都是没有问题的,Map是HashMap,Set是HashSet,List是ArrayList。然而,我使用的是的不可变*集合(例如),我真的不知道最终会得到哪个实现。我是否需要接受它,让GWT模拟所有这些,或者有什么方法可以在这里进行伤害控制?对。只需使用API

我的理解是,出于性能原因,要序列化的DTO应该声明其字段的最低实现类型。例如,人们应该支持
ArrayList
而不是
List
Collection
,无视我们通常收到的相反建议(例如,有效Java,第52项)


对于JDK集合,这在大多数情况下都是没有问题的,
Map
HashMap
Set
HashSet
List
ArrayList
。然而,我使用的是的不可变*集合(例如),我真的不知道最终会得到哪个实现。我是否需要接受它,让GWT模拟所有这些,或者有什么方法可以在这里进行伤害控制?

对。只需使用API中最具体的类型

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