SerialVersionUid可以是任何数字还是必须编译生成?

时间:2010-04-12 02:27:51

标签: java serialization

如果我为我的类写了一个serialversionUid,如1234,并且我知道我的程序中没有其他类使用它,那么没关系,还是我总是要使用编译器生成的uid?

2 个答案:

答案 0 :(得分:2)

serialVersionUID可以是为对象提供唯一签名以进行序列化和反序列化的任何长度。我认为它甚至不必是独一无二的。这样,即使在更改了类的结构之后,序列化程序也知道它是相同的Foo.class。我通常使用-1L作为值。

答案 1 :(得分:2)

它可以是任何数字,只需要代表该类的版本。它根本不必是唯一的。