实体类中如何自动生成serialVersionUID

1. 为什么要实现序列化接口Serializable?

答:实现序列化接口Serializable的目的是为了类可持久化,Java中的序列化机制能够将一个实例对象信息写入到一个字节流中(只序列化对象的属性值,而不会去序列化方法),序列化后的对象可用于网络传输(远程),或者持久化到数据库、磁盘中(本地存储)。为系统的分布和异构部署提供先决条件。若没有序列化,现在我们所熟悉的RPC(Remote Procedure Call,远程调用),对象数据库都不可能存在。

2.serialVersionUID是干什么用的?

serialVersionUID适用于java序列化机制。简单来说,JAVA序列化的机制是通过判断类的serialVersionUID来验证的版本一致的。在进行反序列化时,JVM会把传来的字节流中的serialVersionUID于本地相应实体类的serialVersionUID进行比较。如果相同说明是一致的,可以进行反序列化,否则会出现反序列化版本一致的异常,即是InvalidCastException。

3.实体类中如何自动生成serialVersionUID?

(1)在IDEA中生成UID,首先找到文件菜单下的设置

实体类中如何自动生成serialVersionUID_第1张图片

 (2)在Setting中,根据路径Editor->Inspections->Java进入下图所示

实体类中如何自动生成serialVersionUID_第2张图片

 (3)在Java目录下,根据路径Serialization issues -> Serializable class without 'serialVersionUID',在其后面打上勾,保存应用(apply)就行了。

实体类中如何自动生成serialVersionUID_第3张图片

 (4)看一下效果。

  a.实体类会有提示

实体类中如何自动生成serialVersionUID_第4张图片

  b.Alt + Enter 会出现如下图所示选项,确认就行

实体类中如何自动生成serialVersionUID_第5张图片

  c.生成了serialVersionUID

你可能感兴趣的:(java,Idea,java,开发语言)