什么是java中的serialVersionUID,通常在异常类中?
2022-09-01 03:50:57
可能的重复:
我为什么要为串行VersionUID而烦恼?
我正在经历一些异常处理代码,我看到了一个名为serialVersionUID的东西。这个 uid 是干什么用的??它是仅限于例外,还是可以在所有类中使用???这个id有什么优点???
可能的重复:
我为什么要为串行VersionUID而烦恼?
我正在经历一些异常处理代码,我看到了一个名为serialVersionUID的东西。这个 uid 是干什么用的??它是仅限于例外,还是可以在所有类中使用???这个id有什么优点???
serialVersionUID
是一个字段,用于定义特定类的版本 while &..考虑一个场景,其中你有一个类,它有3个字段,这些字段已经在生产中一段时间了(这意味着可能存在许多序列化版本的员工对象),当你更新类以包含(比如第4个字段)时,所有以前的类(被序列化)都不能被强制转换或反序列化到新的一个,你会得到一个例外。seriializing
deseriializing
Employee
为避免此问题,可以使用该字段来判断新类实际上是不同的版本(通过更改 )。serialVersionUID
JVM
serialVersionUID
@Farmor
& @Tom Jefferys
几乎说了同样的事情,但是举个例子,事情看起来要简单得多。
它用于序列化,它应该在任何实现 .Serializable
它实际上是一个版本号,JVM 可以使用它来检查序列化类是否与您尝试反序列化它的类定义匹配。
这里有更多关于它的信息:http://download.oracle.com/javase/1,5.0/docs/api/java/io/Serializable.html