Java 强制GWT假定列表实现为ArrayList

Java 强制GWT假定列表实现为ArrayList,java,gwt,Java,Gwt,出于某种原因,我对使用列表作为集合类型的模型类感到厌倦,我希望在客户端使用该模型。然而,GWT当然无法序列化java.util.List。然而,该模型中列表的所有实现都基于ArrayList。那么,是否可以让GWT假设列表是ArrayList 编辑 GWT在编译时失败,因为列表的一个可能候选对象也是java.util.Collections.SingeltonList,它无法编译 我正在使用GWT 2.1和Java 1.6。GWT RPC应该正确序列化ArrayList,因为它们实现了Java.

出于某种原因,我对使用列表作为集合类型的模型类感到厌倦,我希望在客户端使用该模型。然而,GWT当然无法序列化java.util.List。然而,该模型中列表的所有实现都基于ArrayList。那么,是否可以让GWT假设列表是ArrayList

编辑 GWT在编译时失败,因为列表的一个可能候选对象也是java.util.Collections.SingeltonList,它无法编译


我正在使用GWT 2.1和Java 1.6。

GWT RPC应该正确序列化ArrayList,因为它们实现了Java.io.Serializable。究竟是列表未能序列化,还是列表中的类


另一个常见的警告:您的类中是否包含(必需的)无参数构造函数?

Gwt为每个对象创建javascript,List是更通用的类型,因为此编译器尝试生成List的所有功能,而Gwt编译器不知道运行时。 GWT的“可序列化”概念与基于标准Java接口可序列化的序列化略有不同。 请参阅常见问题解答主题


所有关于序列化规则的详细说明

您可以使用GWT-RPC黑名单来防止GWT在这种情况下尝试编译某些类。参见。

是的,建造师已经就位。这个列表是一个ArrayList,这可能是另一个问题。如果您只希望GWT序列化,请使用IsSerializable而不是Serializable。它是一个空的标记接口,所以不会与Hibernate这样的ORM系统发生冲突。谢谢你的提示,但这并不是我问题的答案。我没有必要使用模型和列表属性,我只是希望能够限制列表o ArrayList的所有可能候选项。