Java序列化报错serialVersionUID不一致

反序列化报错:java.io.InvalidClassException: com.*.*;   local class incompatible: stream classdesc serialVersionUID = 5590259895198052390, local class serialVersionUID = 7673969121092229700  

因为 Java 的序列化机制是通过在运行时判断类的serialVersionUID来验证版本一致性的。在进行反序列化时,JVM 会把传来的字节流中的serialVersionUID与本地相应实体(类)的serialVersionUID进行比较,如果相同就认为是一致的,可以进行反序列化,否则就会出现序列化版本不一致的异常。

 

一般来说,定义serialVersionUID的方式有两种,分别为:

 

采用默认的1L,具体为private static final long serialVersionUID = 1L;

根据类名、接口名、成员方法及属性等来生成一个64位的哈希字段,例如 private static final long serialVersionUID = XXXL;

你可能感兴趣的:(java)