出于某种原因,我使用List作为集合类型而被模型类所困扰,我想在客户端使用该模型。但是GWT当然无法序列化java.util.List。但是,此模型中List的所有实现都基于ArrayList。那么有可能告诉GWT假设List是ArrayList吗?
修改 GWT在编译时失败,因为List的可能候选者也是java.util.Collections.SingeltonList - 无法编译。
我正在使用GWT 2.1和Java 1.6。
答案 0 :(得分:3)
您可以使用GWT-RPC黑名单来阻止GWT在这种情况下尝试编译某些类。请参阅this issue。
答案 1 :(得分:1)
GWT RPC应该正确地序列化ArrayLists,因为它们实现了java.io.Serializable。是真的列表无法序列化还是列表中的类?
另一个常见的警告:您是否在类中包含了(必需的)无参数构造函数?
答案 2 :(得分:1)
Gwt为每个对象创建javascript,而List是更通用的类型,因为这个编译器尝试生成List的所有功能,而gwt编译器不知道运行时。 GWT的“可序列化”概念与基于标准Java接口Serializable的序列化略有不同。 请参阅常见问题主题Does the GWT RPC system support the use of java.io.Serializable?
所有关于详细解释的序列化规则here