Java序列化中SeriableVersionUID的作用

上文代码中我们定义了一项属性

UID

那么这条常量属性是做什么的呢?

首先我们看如果我们不定义可不可以:


报错

答案是不可以的;

但是如果我们只是进行序列化操作,而没有反序列化操作的时候,单方面是允许的,但是如果要进行反序列化操作或者是给原有类添加属性,就会报错。

这是因为:如果我们不指定UID的话,那么进行序列化的类和反序列化的类或者是增加完属性的类,是不兼容的。也就是说,少了这样一个唯一标识,编译器是不认识你序列化和反序列化的类是不是一个,所以才会想上面图片一个,会出现两个SerialVersionUID ,所以我们大家还是在进行序列化的时候添加上吧。

你可能感兴趣的:(Java序列化中SeriableVersionUID的作用)