如果类已经实现了 'Serializable' 接口,却没有指定 'serialVersionUID',那么在反序列化时可能会遇到 'serialVersionUID' 不一致的问题。如果在序列化时没有指定 'serialVersionUID',Java 会根据类的结构自动生成一个 'serialVersionUID'。但是,如果在反序列化时类的结构发生了变化(比如新增或删除了一个成员变量),那么自动生成的 'serialVersionUID' 就会改变,导致反序列化失败。

为了避免这个问题,最好在类中显式地指定 'serialVersionUID'。可以使用任意 long 类型的数值作为 'serialVersionUID' 的值,例如:

private static final long serialVersionUID = 123456789L;

这个值可以手动指定,也可以使用 IDE 自动生成。当类的结构发生变化时,如果不希望反序列化失败,可以手动修改 'serialVersionUID' 的值,并保证新旧版本的类的 'serialVersionUID' 相同。

Java 序列化:serialVersionUID 的重要性

原文地址: http://www.cveoy.top/t/topic/lE84 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录