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"即可


選中實體類類名按住Alt+Enter,選擇條目,即可生成serialVersionUID,如圖:





發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章