实体类中如何自动生成serialVersionUID

4 篇文章 0 订阅

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

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

2.serialVersionUID是干什么用的?

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

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

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

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

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

 (4)看一下效果。

  a.实体类会有提示

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

  c.生成了serialVersionUID

  • 15
    点赞
  • 62
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值