【发布时间】:2014-08-12 19:04:44
【问题描述】:
我知道为什么我们需要提供一个串行 UID(以便在反序列化期间,发送方和接收方具有相同的加载类)。因此,根据这个,如果我有多个具有相似 UID 的类,那么我是否正确假设会发生反序列化但之后会出现问题(我不知道是什么)?还是它会以某种方式抛出InvalidClassException?还是我的两个假设都完全偏离了?
我想对此进行测试,但再次不确定它是否会起作用,如果在反序列化过程中实际选择了正确的类怎么办?在那种情况下,一切都会变得美好。
【问题讨论】:
-
类总是由类名选择
-
一切都会好起来的。该字段的主要目的是使反序列化能够处理单个序列化类的多个版本。如果您未指定 serialVersionUID,则会在编译时生成一个。如果您随后部署到集群 Java 应用程序服务器,并且它们序列化您的对象的状态,然后您要部署另一个构建,您将获得不同的生成 serialVersionUID,如果您尝试使用基本的应用程序服务器会给您一个错误反序列化。
标签: java