首页
学习
活动
专区
工具
TVP
发布

local class incompatible: stream classdesc serialVersionUID = 61,local class serialVersionUID = 1

序列化失败: 场景:一个JPA实体类Person 业务层使用redis缓存 一开始没有添加serialVersionUID ,使用默认的,后面改为手动指定,结果就出现序列化失败。...NoArgsConstructor @AllArgsConstructor public class Person implements Serializable { private static final long serialVersionUID...java.io.InvalidClassException: com.example.demo.hello.bean.Person; local class incompatible: stream classdesc serialVersionUID...= 6135217848649668701, local class serialVersionUID = 1 org.springframework.data.redis.serializer.SerializationException...java.io.InvalidClassException: com.example.demo.hello.bean.Person; local class incompatible: stream classdesc serialVersionUID

30310
您找到你想要的搜索结果了吗?
是的
没有找到

serialVersionUID 问题处理

深入阅读参考文献:深入分析Java的序列化与反序列化 什么是serialVersionUID 简单来说,Java的序列化机制是通过在运行时判断类的serialVersionUID来验证版本一致性的。...在进行反序列化时,JVM会把传来的字节流中的serialVersionUID与本地相应实体(类)的serialVersionUID进行比较,如果相同就认为是一致的,可以进行反序列化,否则就会出现序列化版本不一致的异常...当实现java.io.Serializable接口的实体(类)没有显式地定义一个名为serialVersionUID,类型为long的变量时,Java序列化机制会根据编译的class自动生成一个serialVersionUID...建议 serialVersionUID是用来验证版本一致性的。所以在做兼容性升级的时候,不要改变类中serialVersionUID的值。...如果一个类实现了Serializable接口,一定要记得定义serialVersionUID,否则会发生异常。

6610

serialVersionUID详解「建议收藏」

本人学习笔记,仅供自己查阅 ---- Java类中serialVersionUID作用是什么? serialVersionUID适用于Java的序列化机制。...serialVersionUID有两种显示的生成方式: 一是 默认的1L,比如:private static final long serialVersionUID = 1L; 二是 根据类名、接口名、...凡是实现Serializable接口 的类都有一个表示序列化版本标识符的静态变量:private static final long serialVersionUID; 类的serialVersionUID...serialVersionUID显示定义的必要性: 在分布式部署的应用中,可能会存在漏掉一两台设备的服务器代码没有及时更新,因此这两台设备中类的serialVersionUID可能存在不同。...具体的序列化过程是这样的:序列化操作的时候系统会把当前类的serialVersionUID写入到序列化文件中,当反序列化时系统会去检测文件中的serialVersionUID,判断它是否与当前类的serialVersionUID

72730

Intellij IDEA 自动生成 serialVersionUID

Java的序列化机制是通过在运行时判断类的serialVersionUID来验证版本一致性的。...在进行反序列化时,JVM会把传来 的字节流中的serialVersionUID与本地相应实体(类)的serialVersionUID进行比较,如果相同就认为是一致的,可以进行反序 列化,否则就会出现序列化版本不一致的异常...当实现java.io.Serializable接口的实体(类)没有显式地定义一个名为serialVersionUID,类型为long的变 量时,Java序列化机制会根据编译的class自动生成一个serialVersionUID...作序列化版本比较用,这种情况下,只有同一次编译生成的 class才会生成相同的serialVersionUID 。...关键字,将Serialzable class without "serialVersionUID"打上勾。

77020

【Java 基础篇】serialVersionUID 详解

在本文中,我们将详细解释 serialVersionUID 的作用、用法以及相关的注意事项。 什么是 serialVersionUID?...为什么需要 serialVersionUIDserialVersionUID 的存在是为了处理序列化和反序列化过程中的版本兼容性问题。...serialVersionUID 的主要作用如下: 版本控制:serialVersionUID 允许开发人员显式地管理类的版本。...serialVersionUID 的作用 serialVersionUID 的主要作用是确保序列化和反序列化的兼容性。以下是 serialVersionUID 的几种用途: 1....serialVersionUID 的一些注意事项 在使用 serialVersionUID 时,有一些最佳实践和注意事项: 手动指定 serialVersionUID:建议在序列化类中显式声明 serialVersionUID

35620

serialVersionUID 是干什么的?

那么到底 serialVersionUID 是什么呢?有什么用?...可序列化类可以通过声明名为 serialVersionUID 的字段显式声明自己的 serialVersionUID,且该字段必须是static、final的且类型为long: ANY-ACCESS-MODIFIER...如Java(TM)对象序列化规范中所讲述的,如果可序列化类没有显式声明serialVersionUID,则序列化运行时将根据类的各个方面计算该类的默认serialVersionUID值。...但是,强烈建议所有可序列化类显式声明serialVersionUID值,因为默认的 serialVersionUID 计算对类详细信息高度敏感,这些详细信息可能因编译器实现而异,因此在反序列化过程中可能会导致意外的...还强烈建议显式 serialVersionUID 声明尽可能使用 private 修饰符,因为此类声明仅适用于立即声明的类——serialVersionUID字段不可用作继承成员。

1.1K20
领券