private static final long serialVersionUID = 1L;
2018-01-10 15:20
381 查看
serialVersionUID作用:
序列化时为了保持版本的兼容性,即在版本升级时反序列化仍保持对象的唯一性。
你可以随便写一个,在Eclipse中它替你生成一个,有两种生成方式:
一个是默认的1L,比如:private static final long serialVersionUID = 1L;
一个是根据类名、接口名、成员方法及属性等来生成一个64位的哈希字段,比如:private
static final long serialVersionUID = -8940196742313994740L;之类的。
Eclipse提示The serializable class XXX does not declare a static final serialVersionUID field of type long
那是Eclipse提供这个提示功能给你吧.
你点它warning的icon两下Eclipse就会自动给定.
如果你不喜欢,可以把它关掉,
windows -> preferences -> compiler -> Error/Warnings
-> Potential Programming problems
将Serializable class without serialVersionUID的warning改成ignore.
其实如果你没有考虑到兼容性问题时,那就把它关掉吧.
其实有这个功能是好的.
只要任何类别实作了Serializable这个介面,
如果没有加入serialVersionUID,Eclipse都会给你warning提示,
这个serialVersionUID为了让该类别Serializable后兼容.
考虑一下,如果今天你的类Serialized存到硬碟里,
可是后来你却更改了类别的field(增加或减少或改名).
当你Deserialize时,就会出现Exception.这样就会做成不兼容性的问题.
序列化时为了保持版本的兼容性,即在版本升级时反序列化仍保持对象的唯一性。
你可以随便写一个,在Eclipse中它替你生成一个,有两种生成方式:
一个是默认的1L,比如:private static final long serialVersionUID = 1L;
一个是根据类名、接口名、成员方法及属性等来生成一个64位的哈希字段,比如:private
static final long serialVersionUID = -8940196742313994740L;之类的。
Eclipse提示The serializable class XXX does not declare a static final serialVersionUID field of type long
那是Eclipse提供这个提示功能给你吧.
你点它warning的icon两下Eclipse就会自动给定.
如果你不喜欢,可以把它关掉,
windows -> preferences -> compiler -> Error/Warnings
-> Potential Programming problems
将Serializable class without serialVersionUID的warning改成ignore.
其实如果你没有考虑到兼容性问题时,那就把它关掉吧.
其实有这个功能是好的.
只要任何类别实作了Serializable这个介面,
如果没有加入serialVersionUID,Eclipse都会给你warning提示,
这个serialVersionUID为了让该类别Serializable后兼容.
考虑一下,如果今天你的类Serialized存到硬碟里,
可是后来你却更改了类别的field(增加或减少或改名).
当你Deserialize时,就会出现Exception.这样就会做成不兼容性的问题.
相关文章推荐
- 经常在类名那有错,修改后,经常加了private static final long serialVersionUID = 1L; 这个是什么意思,加了有什么用?
- private static final long serialVersionUID = 5461344781588144485L;是什么意思,后面的号码是如何生成的
- 关于Bean的知识private static final long serialVersionUID = 1L
- private static final long serialVersionUID的作用
- private static final long serialVersionUID
- java建立一个类时为什么设置private static final long serialVersionUID??
- 详解: private static final long serialVersionUID = 1L
- private static final long serialVersionUID在实现序列化的类中出现的意义
- 创建servlet类时出现的“private static final long serialVersionUID = 1L;”语句是什么意思啊?
- private static final long serialVersionUID = 1L;
- private static final long serialVersionUID = 1L;
- private static final long serialVersionUID = 1L;
- private static final long serialVersionUID
- private static final long serialVersionUID = ??? 的作用
- @SuppressWarnings("serial")与private static final long serialVersionUID = 1L的区别
- private static final long serialVersionUID在实现序列化的类中出现的意义
- private static final long serialVersionUID = 1L;
- private static final long serialVersionUID = 1L 干什么的?
- private static final long serialVersionUID = 1L;
- 为何加入:private static final long serialVersionUID