博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
serialVersionUID作用
阅读量:6906 次
发布时间:2019-06-27

本文共 845 字,大约阅读时间需要 2 分钟。

serialVersionUID作用:

       序列化时为了保持版本的兼容性,即在版本升级时反序列化仍保持对象的唯一性。
有两种生成方式:
       一个是默认的1L,比如:private static final long serialVersionUID = 1L;
       一个是根据类名、接口名、成员方法及属性等来生成一个64位的哈希字段,比如:
       private static final   long     serialVersionUID = xxxxL;
当你一个类实现了Serializable接口,如果没有定义serialVersionUID,Eclipse会提供这个
     提示功能告诉你去定义 。在Eclipse中点击类中warning的图标一下,Eclipse就会
     自动给定两种生成的方式。如果不想定义它,在Eclipse的设置中也
      可以把它关掉的,设置如下:
        Window ==> Preferences ==> Java ==> Compiler ==> Error/Warnings ==>
        Potential programming problems
        将Serializable class without serialVersionUID的warning改成ignore即可。
如果你没有考虑到兼容性问题时,就把它关掉,不过有这个功能是好的,只要任何类别实现了Serializable这个接口的话,如果没有加入
serialVersionUID,Eclipse都会给你warning提示,这个serialVersionUID为了让该类别
Serializable向后兼容。
如果你的类Serialized存到硬盘上面后,可是后来你却更改了类别的field(增加或减少或改名),当你Deserialize时,就会出现Exception的,这样就会造成不兼容性的问题。
但当serialVersionUID相同时,它就会将不一样的field以type的预设值Deserialize,可避开不兼容性问题。

转载地址:http://zqrdl.baihongyu.com/

你可能感兴趣的文章
第二十一章 任务、线程和同步
查看>>
HtmlDecode 解码  
查看>>
文件共享windows server 2008 服务器
查看>>
软考:两个通用思想
查看>>
初入koa2 -起步
查看>>
java 开发体系参考学习
查看>>
【转】如何阅读android源码
查看>>
Azure系列2.1.4 —— BlobInputStream
查看>>
关于面向对象的理解和类、对象,Java的三大特性
查看>>
1004 成绩排名
查看>>
【转载】【springmvc+mybatis项目实战】杰信商贸-1.项目背景
查看>>
(转)GMap.Net开发之自定义Marker使用方法
查看>>
P1501 [国家集训队]Tree II
查看>>
用ReactNative搭建一个安卓APP
查看>>
rocketmq生产者代码分析
查看>>
[扫雷][游戏] 交互*2
查看>>
directX学习系列8 颜色融合(转)
查看>>
方法:C#在WinForm中如何将Image存入SQL2000和取出显示
查看>>
码农翻身
查看>>
在windows下运行docker的问题【Error getting IP address: ***】
查看>>