序列化/反序列化 两点记录

看到一篇文章谈:一个单例模式如果序列化过如何处理?

 

因为类可以序列化了就不可能单例了,所以看下了。

    private Object readResolve() {
return INSTANCE;
}

在类里实现这个方法,可以无视反序列的那个实例,直接用返回值作为结果

 

查资料的时候又看到这个方法。反序列化的时候也会调用该方法。可以做下check。

    // readObject method with validity checking
private void readObject(ObjectInputStream s) throws IOException,ClassNotFoundException {
s.defaultReadObject();
// Check that our invariants are satisfied
if (start.compareTo(end) > 0)
throw new InvalidObjectException(start + " after " + end);
}




posted @ 2012-01-12 18:54  倚楼无语F5  阅读(170)  评论(0编辑  收藏  举报