黑马程序员技术交流社区

标题: 代码出现这个什么意思 [打印本页]

作者: 创出一片辉煌    时间: 2012-7-31 23:24
标题: 代码出现这个什么意思
代码代码中有private static final long serialVersionUID = 1L 是怎么回事?有什么用处?

作者: 王广彬    时间: 2012-7-31 23:29
这个是用来表明类的不同版本间的兼容性的。如果你修改了此类,就要 要修改此值。要不然以前用的老版本的类序列化的类恢复时会出错的。为了在反序列化时,确保类版本的兼容性,最好在每个要序列化的类中都加入private static final long serialVersionUID这个属性,具体数值自己定义。  
Window-->Preferences-->Java,将serializable class without serialVersionUID的设置由warning改为Ignore。改完后Eclipse会重新编译程序,那些警告信息也就消失了.

作者: 余明辉    时间: 2012-7-31 23:58
UID值的作用是标识这个类,是java根据类中的成员变量和方法自动生成的,不过我们也可以手动的给一个我们想要的值
这样做的好处就是:在我们序列化一个类以后,如果之后还有人去修改这个类的话,这个UID也是不会改变的,这样当我们需要反序列化的时候就不会出现错误
作者: 创出一片辉煌    时间: 2012-8-1 23:29
王广彬 发表于 2012-7-31 23:29
这个是用来表明类的不同版本间的兼容性的。如果你修改了此类,就要 要修改此值。要不然以前用的老版本的类序 ...

``                已解决




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2