serialVersionUID作用
来源:互联网 发布:大庆实验中学网络课 编辑:程序博客网 时间:2024/04/27 16:47
serialVersionUID作用: 如果没有加入serialVersionUID,Eclipse都会给你warning提示, 异常状态:
============================================================== 前两天升级了Eclipse到3.1版本,在老版本的IDE环境中写的程序在Problems中会出来好多类似的警告。当采用程序的自动修复时,采用默认方式,Eclipse会加上:private static final long serialVersionUID = 1L; 其实这个问题倒也不影响程序的运行,但是我看到Problems里面有警告就不舒服,同时也说明我们写的代码还是不规范。不怕,我们有互联网查查是怎么回事,具体的原因还就是和序列化中的这个serialVersionUID有关。 为了在反序列化时,确保类版本的兼容性,最好在每个要序列化的类中加入private static final long serialVersionUID这个属性,具体数值自己定义。这样,即使某个类在与之对应的对象已经序列化出去后做了修改,该对象依然可以被正确反序列化。否则,如果不显式定义该属性,这个属性值将由JVM根据类的相关信息计算,而修改后的类的计算结果与修改前的类的计算结果往往不同,从而造成对象的反序列化因为类版本不兼容而失败。 不显式定义这个属性值的另一个坏处是,不利于程序在不同的JVM之间的移植。因为不同的编译器实现该属性值的计算策略可能不同,从而造成虽然类没有改变,但是因为JVM不同,出现因类版本不兼容而无法正确反序列化的现象出现。 当我们的系统不太经常需要序列化类时,可以去掉这些警告,做如下设置:Window-->Preferences-->Java,将serializable class without serialVersionUID的设置由warning改为Ignore。然后Eclipse会重新编译程序,那些警告信息也就消失了。 最后的建议是,如果我们开发大量需要序列化的类的时候,我们最好还是还原为原来的设置。这样可以保证系统的性能和健壮。 |
- serialVersionUID作用
- serialVersionUID作用
- serialVersionUID作用
- serialVersionUID作用
- serialVersionUID作用
- serialVersionUID作用
- serialVersionUID作用
- serialVersionUID作用
- serialVersionUID作用
- serialVersionUID作用
- serialVersionUID作用
- serialVersionUID作用
- serialVersionUID作用
- serialVersionUID作用
- serialVersionUID作用
- serialVersionUID作用
- serialVersionUID作用
- serialVersionUID作用
- 新的开始
- jdk发布安全证书
- .NET术语表
- CORBA 入门
- Java线程间同步实现生产者-消费者模式
- serialVersionUID作用
- svn: Working copy xxx locked
- 古人谈酒之三不饮
- 阻塞队列和生产者-消费者模式
- Java 专业人士必备的书籍和网站列表
- 数据挖掘 基因软件 1.0
- 我国低工资真正的原因是什么?
- Sizeof与Strlen的区别与联系
- c#winform:开发多语言应用程序---多国语言本地化与设计模式的思考----观察者模式+工厂模式!