序列化serialVersionUID


序列化主要用於涉及到流的地方,一般存儲及讀取文件,或者進行遠程傳輸時都會涉及到流。

對於自己建的java對象POJO,如果不實現序列化的話,無法進行流傳輸。

實現序列化只需要實現一個接口implements Serializable。

在實現后,一定要聲明一個

private static final long serialVersionUID = 1L;

如果不聲明,系統會自動分配一個,但是代碼版本調整的時候有可能發生變動。

而一旦變動,在讀取反序列化之前版本的數據時會報以下錯誤:

java.io.InvalidClassException: net.jy.redis.pojo.User; local class incompatible: stream classdesc serialVersionUID = -3418623797767119694, local class serialVersionUID = 1

 

建議實現序列化接口時,直接聲明好serialVersionUID 。在以后代碼更新中,只要和之前版本有聯系,serialVersionUID 就不能進行修改,否則無法序列化或反序列化之前序列化流


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM