我尝试过使用Map
,HashMap
和LinkedHashMap
作为 AutoBean 工厂的类型,并且总是在序列化之后改变初始元素的顺序。
我不想发送ArrayList
包含订单数据的附加信息。有没有办法强制 AutoBean 保持秩序Map
?
我尝试过使用Map
,HashMap
和LinkedHashMap
作为 AutoBean 工厂的类型,并且总是在序列化之后改变初始元素的顺序。
我不想发送ArrayList
包含订单数据的附加信息。有没有办法强制 AutoBean 保持秩序Map
?
显然,至少在 GWT 2.4 中,LinkedHashMap.clone()
在 GWT 中返回 a HashMap
,与纯 Java 行为相反。AutoBean 可能依赖于 clone() ,它最终弄乱了顺序。
http://docs.oracle.com/javase/6/docs/api/java/util/Map.html
地图的顺序定义为地图集合视图上的迭代器返回其元素的顺序。一些地图实现,如 TreeMap 类,对它们的顺序做出特定的保证;其他的,比如 HashMap 类,不这样做。
GWT 不对Map
基于 - 的类进行任何更改。Map
由于性能原因,它的许多子类不保持插入顺序。LinkedHashMap
,按照设计,确实保持其插入顺序。也就是说,当然,假设您从a开始LinkedHashMap
而不是从另一种类型构造它,Map
在插入过程中实际上可能不会保留其顺序,从而导致LinkedHashMap
a 的顺序与您预期的不同。
我想知道为什么您仍然需要保留初始订单,Map
如果这是您想要的,您为什么要使用?