我有一个我无法修改的类的对象。
该对象具有循环依赖性。
我想序列化该对象,但我无法访问java源代码,因为它在库中。
在C ++中,我可以创建一个子类,覆盖虚拟方法,然后向下转换以获得所需的行为。在Java中,这是不可能的。
除了创建新的POJO类并手动复制每个字段外,我还有哪些选项?
答案 0 :(得分:0)
无论如何,使用Serializable进行序列化有点臭。我更喜欢使用外部序列化程序,使用JSON(例如Jackson,GSON)或二进制格式(例如Kryo)。无论哪种方式,您都可以在所有这些中编写自定义序列化程序来解决循环依赖关系。
答案 1 :(得分:0)
我选择Jackson,即使您是唯一一个读/写对象的人。许多优点,包括: