Android Studio实现Serializable序列化,自动生成serialVersionUID

近日项目中一个类实现了Serializable接口,Rebuild Project就报了如下错误:

Error:Execution failed for task ':app:greendao'.
> Found 1 problem(s) parsing "E:\heshenghuo\HeShengHuo\app\src\main\java\com\hbmcc\heshenghuo\db\MsgModel.java". First problem:
  Pb(96) The serializable class MsgModel does not declare a static final serialVersionUID field of type long (536871008 at line 18).
  Run gradle with --info for more details.

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

Android Studio如何生成这个serialVersionUID呢?

File--Setting--Editor--Inspections--Java--Serialization issues--勾选Serializable class without "serialVersionUID"即可

Android Studio实现Serializable序列化,自动生成serialVersionUID_第1张图片

选中实体类类名按住Alt+Enter,选择条目,即可生成serialVersionUID,如图:

Android Studio实现Serializable序列化,自动生成serialVersionUID_第2张图片




你可能感兴趣的:(Android)