当前位置: 代码迷 >> Java Web开发 >> private static final long serialVersionUID = 1L;该如何处理
  详细解决方案

private static final long serialVersionUID = 1L;该如何处理

热度:749   发布时间:2016-04-16 22:25:15.0
private static final long serialVersionUID = 1L;
private static final long serialVersionUID = 1L; 是否需要生成get set 方法 ,网上很多解释是说为了实现版本的兼容性,但是我仍然是似懂非懂,定义这一个final变量是如何实现版本兼容的,能不能详细点说下。
------解决方案--------------------
度娘
------解决方案--------------------
版本号,没什么实际作用吧~ 有时候IDE会自动生成~
------解决方案--------------------
一般是在对象序列化(把对象保存到文件或者数据库中)的时候,
由于Java要求能够序列化的对象需要实现java.io.Serializable接口,
在序列化的过程中就会用到serialVersionUID这个值,主要用来控制版本的

比如,在写入的时候是版本1,
之后对象的代码更改了,变成版本2了,
再试着用新版本的对象去读取原来旧版本的文件或者数据库时,(write或者read时)
由于serialVersionUID值改变了,会发生InvalidClassException异常

由于以上的理由,一般情况下,不需要为其生成get和set方法
但是最好能通过配置IDE,让这个数值在类结构发生变化时,能够自动的+1
  相关解决方案