什么是 Java 中的串行版本 ID?
2022-09-01 02:38:36
当我在Eclipse中创建一个扩展java.util.logging.Level的新类时,它要求我添加一个默认或生成的串行版本ID。我只是盲目地添加,不知道它是什么以及为什么我必须添加它。
任何人都可以告诉我它是什么以及为什么需要它。
当我在Eclipse中创建一个扩展java.util.logging.Level的新类时,它要求我添加一个默认或生成的串行版本ID。我只是盲目地添加,不知道它是什么以及为什么我必须添加它。
任何人都可以告诉我它是什么以及为什么需要它。
序列版本 ID 在序列化和反序列化对象时使用。Java 可识别要反序列化的字节是否与本地类版本匹配。如果不是,它将引发异常。
在执行 RMI 或持久化对象结构时,这一点很重要。
关于在Serializable的javadoc中序列化有一个非常好的描述。
它是类的唯一标识符,用于序列化。
如果要尽快序列化,则声明它是明智的,因为如果您不声明一个,那么在更改类时,它将自动生成一个不同的类,序列化将停止工作。
一个很好的参考在这里:http://c2.com/ppr/wiki/JavaIdioms/AlwaysDeclareSerialVersionUid.html