作为Java自带的一个序列化方式,实现Serializable接口就可以对类进行序列化,不过,书中列举了许多这种方式的问题。
1、实现Serializable接口而付出的最大代价是,一旦一个类被发布,就大大降低了“改变这个类的实现的灵活性”;
2、实现Serializable接口第二个代价是增加了出现Bug和安全漏洞的可能性;
3、实现Serializable接口第三个代价是随着类发行新的版本,相关测试负担也会增加;
4、实现Serializable接口并不是一个很轻松就可以做出的决定;
5、为了继承而设计的类减少实现实现Serializable接口,用户的接口也尽可能少继承Serializable接口;
6、内部类不应该实现Serializable接口。
上面的1、3、5其实可以一起说一下,因为通过实现Serializable接口来进行的序列化其实有一个问题,就是你的子类或者父类都需要实现Serializable接口。不然在序列化之后整个对象是会出现数据缺失而导致Bug。也由于这个原因,对于测试来说每次新的测试也要多考虑有没有序列化成功的问题。关于实现Serializable接口进行序列化因为之前使用中出过一次TT,所以认识到了相对应的不足,现在更常使用JsonUtils来进行序列化。