我的理解是,为GWT RPC序列化的DTO应该出于性能原因声明其最低可能实现类型的字段。例如,有人应该ArrayList
优先于List
或Collection
,而无视我们通常收到的相反建议(例如,Effective Java,第52项)。
使用JDK集合,这没有问题 - 大部分时间,Map
是HashMap
,Set
是HashSet
和{{1是List
。但是,我正在使用Guava的不可变*集合(例如,ImmutableList),我真的不知道哪个实现最终会得到。我是否需要将其吸收并让GWT模仿所有这些,或者有没有办法在这里进行损害控制?
答案 0 :(得分:4)
右。只需使用API中最具体的类型即可。
使用@GwtCompatible(serializable = true)
注释的子类型可通过GWT RPC进行序列化,除非另有指定(由另一个@GwtCompatible(serializable = false)
)。您可以安全地使用Immutable*
类型作为GWT RPC接口。