免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 6321 | 回复: 17
打印 上一主题 下一主题

如何生成serialVersionID? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-08-19 00:04 |只看该作者 |倒序浏览
我用eclipse自动生成总是出错,不知道哪里不对了。听说用JDK和什么工具能够生成,请问知道的达人提供些详细情况。。。

论坛徽章:
0
2 [报告]
发表于 2005-08-19 23:24 |只看该作者

如何生成serialVersionID?

自己顶一下先。

论坛徽章:
0
3 [报告]
发表于 2005-08-19 23:59 |只看该作者

如何生成serialVersionID?

试试这个生成serialVersionUID的插件
http://eclipse-plugins.2y.net/eclipse/plugin_details.jsp?id=257

论坛徽章:
0
4 [报告]
发表于 2005-08-20 11:34 |只看该作者

如何生成serialVersionID?

多谢wolfg,我待会试试。我看到很多人直接用eclipse就可以成功生成serialVersionUID,但是我一做,就是一个1L。不知道有什么配置上的问题。

我先试试这个插件。

论坛徽章:
0
5 [报告]
发表于 2005-08-21 00:09 |只看该作者

如何生成serialVersionID?

[quote]原帖由 "快乐的土豆"]小心滴问一下,这个id做什么用滴?   [/quote 发表:


The serialVersionUID is a universal version identifier for a Serializable class. Deserialization uses this number to ensure that a loaded class corresponds exactly to a serialized object. If no match is found, then an InvalidClassException is thrown.

Guidelines for serialVersionUID :

    * always include it as a field, for example: "private static final long serialVersionUID = 7526472295622776147L; " include this field even in the first version of the class, as a reminder of its importance
    * do not change the value of this field in future versions, unless you are knowingly making changes to the class which will render it incompatible with old serialized objects
    * new versions of Serializable classes may or may not be able to read old serialized objects;  it depends upon the nature of the change; provide a pointer to Sun's guidelines for what constitutes a compatible change, as a convenience to future maintainers

Look this for details
http://www.javapractices.com/Topic45.cjp

论坛徽章:
0
6 [报告]
发表于 2005-08-21 00:32 |只看该作者

如何生成serialVersionID?

原帖由 "icesummit" 发表:
多谢wolfg,我待会试试。我看到很多人直接用eclipse就可以成功生成serialVersionUID,但是我一做,就是一个1L。不知道有什么配置上的问题。

我先试试这个插件。


其实不用插件也可以生成。新加一个implements Serializable的类,编辑器左边会有一个警告标记(灯泡加叹号),双击它,会有一个菜单弹出,可以选择生成默认的serialVersionUID(1L),还是随机的。

论坛徽章:
0
7 [报告]
发表于 2005-08-21 08:20 |只看该作者

如何生成serialVersionID?

原帖由 "wolfg" 发表:


其实不用插件也可以生成。新加一个implements Serializable的类,编辑器左边会有一个警告标记(灯泡加叹号),双击它,会有一个菜单弹出,可以选择生成默认的serialVersionUID(1L),还是随机的。


但是默认生成的1L不行吧?这么短恐怕不行呀。

论坛徽章:
0
8 [报告]
发表于 2005-08-21 12:34 |只看该作者

如何生成serialVersionID?

原帖由 "icesummit" 发表:


但是默认生成的1L不行吧?这么短恐怕不行呀。


抱歉,上面写错了,应该是“还有一个随机的”,见图。default就是1L,generated就是随机的

screen1.jpg (7.43 KB, 下载次数: 64)

screen1.jpg

论坛徽章:
0
9 [报告]
发表于 2005-08-21 19:45 |只看该作者

如何生成serialVersionID?

偶用的就是generated,但是仍然是1L。

论坛徽章:
0
10 [报告]
发表于 2005-08-23 21:47 |只看该作者

如何生成serialVersionID?

原帖由 "wolfg" 发表:

抱歉,上面写错了,应该是“还有一个随机的”,见图。default就是1L,generated就是随机的


这个应该不是随机的,是根据Class Name,Filed,Method等等算的Hash值,具体的算法,可以看Java Serializable 规范。
选择Default,1L也是可以的,不是只根据这个字段来唯一标识一个Class的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP