你可能已忽略的关于序列化细节

2020-10-14  本文已影响0人  你听___

原创文章&经验总结&从校招到A厂一路阳光一路沧桑

详情请戳www.codercc.com

image

1. 谨慎实现serializable接口

2. 考虑使用自定义的序列化形式

3. 谨慎使用readObject方法

  private void readObject(ObjectInputStream s)
  throws IOException, ClassNotFoundException {
      s.defaultReadObject();
      // Defensively copy our mutable components
      start = new Date(start.getTime());
      end = new Date(end.getTime());
      // Check that our invariants are satisfied
      if (start.compareTo(end) > 0)
          throw new InvalidObjectException(start +" after "+ end);
      }
  }

并且需要注意的是,保护性拷贝在参数有效性检查的前面,并且不能使用clone方法进行拷贝对象。

4. 使用枚举实现单例

上一篇 下一篇

猜你喜欢

热点阅读