java - 嵌套对象和序列化

标签 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);

然后使用ObjectOutputStream将tA和tB序列化为byteArray,我们在byteArray中有多少次pY? Calss P 和 TT 具有多对多的关系,我们有太多的关系,所以担心大小。

最佳答案

序列化足够智能,可以重用它已经看到的任何引用,因此您应该只有一个pY。这在slightly related FAQ.中有一些解释。

关于java - 嵌套对象和序列化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7016251/

相关文章:

java - 科贝图拉 + 朱尼特

java - 如何访问流中的 getter 和 setter

c# - 在线程执行过程中更新UI C# android

java - 使用 XmlEncoder 创建增量/差异 xml

c# - 序列化代码导致未处理的异常

java - 从 ArrayList 到 Hashmap

java - append 到 ObjectOutputStream

java - ObjectInputStream.read() 返回 -1,但 readObject 返回对象

c# - 如何在序列化 OData 响应时忽略 Null 值

java - 延迟按键