嵌套对象和序列化

Col*_*lin 0 java serialization

我喜欢这个,

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);
Run Code Online (Sandbox Code Playgroud)

然后使用ObjectOutputStream将tA和tB序列化为byteArray,我们在byteArray中有多少次pY?Calss P和TT有很多关系,我们有太多人担心尺寸.

And*_*ite 5

序列化足够聪明,可以重用已经看过的任何引用,所以你应该只有一个pY.这在稍微相关的FAQ中有所解释.