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

 

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

    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);
}




相关文章:

  • 2022-12-23
  • 2021-12-25
  • 2022-12-23
  • 2021-10-14
  • 2021-10-28
  • 2021-12-12
猜你喜欢
  • 2022-01-15
  • 2021-05-21
  • 2021-05-24
  • 2021-07-24
  • 2022-02-13
  • 2021-06-11
  • 2021-10-26
相关资源
相似解决方案