serialVersionUID的值是否重要?

时间:2014-02-13 06:55:54

标签: java serialization

我正在使用java中的序列化类,在那些类中,我需要指定serialVersionUID,并使用一些长数字进行初始化。 默认情况下,它需要

    private static final long serialVersionUID = 1L;

否则我也可以使用其他一些长号来初始化相同的内容,如下图所示:

    private static final long serialVersionUID = 5561040348988016571L;

一些非常大的数字。

我的问题是:我们初始化为serialVersionUID的值是否真的重要?

2 个答案:

答案 0 :(得分:1)

  

我的问题是,这对于我们初始化为serialVersionUID的值是否真正重要,或者无关紧要。

不,无关紧要,除非您已经拥有在添加此成员之前制作的现有序列化(例如文件)。在这种情况下,在.class文件上运行时,必须使用serialver实用程序输出的值,就像进行这些序列化时一样。

答案 1 :(得分:-1)

如果您的对象状态不会被序列化,那么每次类结构更改时您都必须生成serialVersionUID无关紧要(您可以使用eclipse默认的UID生成策略)。