writeUnshared写入像writeObject这样的字段

时间:2012-07-04 15:58:54

标签: java serialization

所以我有一个这样的包装类:

class VeryWrapper
{
    Wrapper wrp = new Wrapper();
    int val = 0;
}

Wrapper定义为:

class Wrapper
{
    int val = 0;
}

现在,如果我想将其序列化为流,请更改valwrp.val,并使用新状态对其进行序列化。我知道使用writeObject会导致在流的另一端接收旧状态。因此在这种情况下必须使用writeUnshared。但问题是使用这种方法只有对象本身不会被共享,而不是它的字段(我的意思是wrp字段),因此val的值将被更新,但wrp.val的值将被更新1}}仍然是旧值。你会如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

最好定期调用reset()以避免内存泄漏。在您的情况下,它将确保将再次发送所有对象。