叙述
今天在写项目时遇到了一个问题,我有一个类因为需求需要添加一个新的字段信息,当我在该l类上添加这个字段后,测试接口获取这个类对象的信息时,给我报了一个序列化错误的Excption,具体错误信息如下
原因
通过错误日志,我们可以很清楚的了解到造成异常的原因主要就是serialVersionUID不对应导致的。
这个问题其实主要还是我们平时不规范的编码方式造成的,我们知道serialVersionUID的作用是,保证对象在序列化时版本的兼容性,即在版本升级时反序列化仍保持对象的唯一性。
如果我们的类实现了Serializable接口,我们就需要给该类指定一个serialVersionUID,保证对象在序列化和反序列化都能保证一致。通常的做法是
private static final long serialVersionUID = 1L;
当然如果你没有在该类中显示的设置serialVersionUID的话
JVM会根据类