序列化具有循环依赖关系的现有Java对象

问题描述 投票:-1回答:2

我有一个我无法修改的类的对象。

该对象具有循环依赖性。

我想序列化对象,但我没有访问java源代码,因为它在库中。

在C ++中,我可以创建一个子类,覆盖虚拟方法,然后向下转换以获得所需的行为。在Java中,这是不可能的。

除了创建新的POJO类并手动复制每个字段外,我还有哪些选项?

java serialization jax-rs
2个回答
0
投票

无论如何,使用Serializable进行序列化有点臭。我更喜欢使用外部串行器,使用JSON(例如JacksonGSON)或二进制格式(例如Kryo)。无论哪种方式,您都可以在所有这些中编写自定义序列化程序来解决循环依赖关系。


0
投票

我会选择Jackson,即使你是唯一一个读/写你的对象的人。许多优点,包括:

  1. 诊断/调试序列化的JSON可以简化生活。
  2. 坚持这条经过深思熟虑的道路意味着任何问题的解决方案都是谷歌的,例如,http://www.baeldung.com/jackson-deserialization
© www.soinside.com 2019 - 2024. All rights reserved.