首页 > 解决方案 > 获取可序列化的整理器实例

问题描述

如果我需要使用整理器,我似乎无法序列化 TreeMap。网上真的没有关于它的信息,我似乎无法自己修复它。任何有关如何获得可序列化整理器的帮助将不胜感激。谢谢。

标签: javaserializationinstancecollator

解决方案


这是你需要做的。

  1. 使用Serializing Collat​​or instance的答案中给出的包装技术实现一个可序列化的整理器类。(这样做是将实际的整理器保存在一个transient 字段中,并在包装​​器反序列化时通过调用来重构它。)Collator.getInstance

  2. 创建该类的实例。

  3. 实例化将TreeMap整理器实例作为构造函数参数传递的类。

您现在应该能够序列化TreeMap.

请注意,TreeMap比较器保存在private未标记为的字段中transient,并且它正在通过映射private writeObjectreadObject方法进行序列化/反序列化。没有干净的方法可以在TreeMap.

唯一的其他选择是寻找(或创建)比较器被标记为瞬态的树映射的实现,或者Collator是可序列化的实现。


参考上面的链接,你说:

我试过了,但没有用。

它应该工作。也许你可以告诉我们它是如何不起作用的。你有例外吗?行为不正确?


推荐阅读