我有这样的,
Class P {
pub int id;
pub P(id) { this.id = id; }
...
pub Set<Integer> parentTTList;
}
Class TT {
pub int id;
pub TT(id) { this.id = id; }
pub List<P> manyPList;
}
List<TT> manyTTList;
Then TT tA = new TT(1), tB = new TT(2);
P pX = new P(-1), pY = new P(-2);
tA.manyPList.add(pY); pY.parentTTList.add(tA.id);
tA.manyPList.add(pX); pX.parentTTList.add(tA.id);
tB.manyPList.add(pY); pY.parentTTList.add(tB.id);
然后使用ObjectOutputStream将tA和tB序列化为byteArray,我们在byteArray中有多少次pY? Calss P 和 TT 具有多对多的关系,我们有太多的关系,所以担心大小。
最佳答案
序列化足够智能,可以重用它已经看到的任何引用,因此您应该只有一个pY
。这在slightly related FAQ.中有一些解释。
关于java - 嵌套对象和序列化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7016251/