序列化/反序列化 两点记录
看到一篇文章谈:一个单例模式如果序列化过如何处理?
因为类可以序列化了就不可能单例了,所以看下了。
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);
}