Serialization 如何处理具有依赖关系的对象的序列化和反序列化

Serialization 如何处理具有依赖关系的对象的序列化和反序列化,serialization,dependencies,deserialization,circular-dependency,Serialization,Dependencies,Deserialization,Circular Dependency,假设我有两个相互依赖的对象或其他对象(因此使用对这些对象的引用),我需要将它们的“状态”从/恢复到磁盘。由于存储指向磁盘的指针不会在恢复时产生正确的结果,我们如何在恢复时保持依赖关系正确 e、 g (或具有n个依赖循环的更复杂链) A=反序列化(Adata) B=反序列化(Bdata) (假设我们需要a.b=b和b.a=a) 我认为对具有延迟求值的对象使用唯一哈希可以解决问题,但也许有更好的方法?(如果我有一个唯一的散列,那么很容易找到要使用的对象,也很容易保存和恢复该对象(基本上散列用作指针,

假设我有两个相互依赖的对象或其他对象(因此使用对这些对象的引用),我需要将它们的“状态”从/恢复到磁盘。由于存储指向磁盘的指针不会在恢复时产生正确的结果,我们如何在恢复时保持依赖关系正确

e、 g

(或具有n个依赖循环的更复杂链)

A=反序列化(Adata) B=反序列化(Bdata)

(假设我们需要a.b=b和b.a=a)

我认为对具有延迟求值的对象使用唯一哈希可以解决问题,但也许有更好的方法?(如果我有一个唯一的散列,那么很容易找到要使用的对象,也很容易保存和恢复该对象(基本上散列用作指针,但始终有效(因为它是唯一的,从不更改))

class A {
   B b;
}

class B {
{
   A a;
}