关闭

详述 IntelliJ IDEA 中自动生成 serialVersionUID 的方法

标签: ideaUID序列化
2434人阅读 评论(0) 收藏 举报
分类:

当我们用 IntelliJ IDEA 编写类并实现 Serializable(序列化)接口的时候,可能会遇到这样一个问题,那就是:

  • 无法自动生成serialVersionUID.

serialVersionUID又是一个非常重要的字段,因为 Java 的序列化机制是通过在运行时判断类的serialVersionUID来验证版本一致性的。在进行反序列化时,JVM 会把传来的字节流中的serialVersionUID与本地相应实体(类)的serialVersionUID进行比较,如果相同就认为是一致的,可以进行反序列化,否则就会出现序列化版本不一致的异常。

一般来说,定义serialVersionUID的方式有两种,分别为:

  • 采用默认的1L,具体为private static final long serialVersionUID = 1L;
  • 根据类名、接口名、成员方法及属性等来生成一个64位的哈希字段,例如 private static final long serialVersionUID = XXXL;

而 Java 类进行序列化也两个主要目的,分别为:

  • 把对象的字节序列永久地保存到硬盘上,通常存放在一个文件中;
  • 在网络上传送对象的字节序列。

在这里,我们就一起来看看如何利用 IntelliJ IDEA 自动生成serialVersionUID.

第 1 步:安装GenerateSerialVersionUID插件

1

如上图所示,点击Preferences,进入如下界面:

2

在这里,选择Plugins,并搜索GenerateSerialVersionUID,如果没有发现此插件,则可以点击Search in repositories进行搜索:

3

如上图所示,点击install,即可安装此插件。

第 2 步:设置Inspections功能

4

如上图所示,进入Default Settings,在Inspections设置页面中,勾选Serializable class without 'serialVersionUID',并且还可以在Severity中设置提示级别,如WarningError等,默认为Warning,也建议选择Warning级别的提示。

5

如上图所示,创建一个类并实现Serializable接口,然后按alt+Enter键,即可收到提示,然后选择SerialVersionUID

6

如上图所示,显然我们已经利用 IntelliJ IDEA 中自动生成serialVersionUID啦!


———— ☆☆☆ —— 返回 -> 史上最简单的 IntelliJ IDEA 教程 <- 目录 —— ☆☆☆ ————

2
0
查看评论

Intellij Idea 15 生成serialVersionUID的方法 默认情况下Intellij IDEA是关闭了继承了Serializable接口的类生成serialVersionUID的警

Intellij Idea 15 生成serialVersionUID的方法 默认情况下Intellij IDEA是关闭了继承了Serializable接口的类生成serialVersionUID的警告。如果需要ide提示生成serialVersionUID,那么需要做以下设置...
  • xingxiupaioxue
  • xingxiupaioxue
  • 2017-08-15 20:54
  • 121

Intellij Idea 方法自动生成参数默认名(像Eclipse那样)

使用过Eclipse的同学都知道,其默认会自动为方法补全参数名称。在网上找了很多资料基本都是用ctrl+p之类的凑合着看,或者其他之类的,然而并没有真正的生成代码,还是要手动!后来我去官方的插件库搜索,发现关于method的插件挺多的,就逐一观测实验,终于发现了一个可以在一定程度上实现自动生成的插件...
  • u014042066
  • u014042066
  • 2017-08-17 10:04
  • 3197

Intellij IDEA 自动生成 serialVersionUID

Setting->Inspections->Serialization issues->Serializable class without ’serialVersionUID’  选上以后,在你的class中:Alt+Enter就会提示自动创建serialVersion...
  • tiantiandjava
  • tiantiandjava
  • 2013-04-10 11:15
  • 88133

Intellij idea用快捷键自动生成序列化id

Intellij idea用快捷键自动生成序列化id类继承了Serializable接口之后,使用alt+enter快捷键自动创建序列化id 进入setting→inspections→serialization issues→选择图中的选项。serializable class without ...
  • u013806366
  • u013806366
  • 2016-07-19 16:59
  • 19920

serialVersionUID的作用以及如何用idea自动生成实体类的serialVersionUID

serialVersionUID的作用: 通过判断实体类的serialVersionUID来验证版本一致性的。在进行反序列化时,JVM会把传来的字节流中的serialVersionUID与本地相应实体类的serialVersionUID进行比较,如果相同就认为是一致的,可以进行反序列化,否则就会出现...
  • liuzongl2012
  • liuzongl2012
  • 2015-04-21 11:52
  • 17365

Intellij IDEA自动生成serialVersionUID配置

完整操作流程:Setting->Editor->Inspections->Java->Serialization issues->Serializable class without ‘serialVersionUID’(选择勾上) 配置完成后,如果你的Class实现了...
  • xyc_csdn
  • xyc_csdn
  • 2017-06-05 11:34
  • 3335

IntelliJ IDEA+SpringBoot创建模拟接口小程序

一、首先,设计好数据库表,并且填上测试数据 二、新建一个Idea程序,使用spring Initialzrxiangdao向导,选择web->web,SQL->jdbc,SQL->MySQL,并且添加gson依赖库 三、配置启动文件Application.Java @SpringB...
  • xxkalychen
  • xxkalychen
  • 2017-08-20 22:21
  • 363

Idea中类实现Serializable接口

idea实现Serializable接口,然后打出serialVersionUID的办法 setting>editor>Inspection>Java>Serialization issues>勾上Serializable class without “serialV...
  • humingtao1108
  • humingtao1108
  • 2017-12-28 15:36
  • 151

Intellij Idea 自动生成serialVersionUID的方法

serialVersionUID介绍 再编程过程中当涉及到对象的传输问题时,我们会采用序列化的技术,通过序列化可以将对象的状态信息转换为可以存储或传输的形式的过程。在Java当中我们可以通过实现Serializable接口来序列化对象,而serialVersionUID就是Java序列化机制中一个不...
  • lisongjia123
  • lisongjia123
  • 2017-08-18 19:37
  • 488

IDEA自动生成类和方法【带参数和返回】注释

idea: 类头注释:打开file->setting->Editor->Filr and Code Templates->Includes->File Header  直接在右边的文件框里编辑你说需要注释的东西,然后应用保存之后,当你创建类的时候就...
  • longshehe9319
  • longshehe9319
  • 2017-11-30 21:59
  • 1484
    个人资料
    • 访问:957652次
    • 积分:12881
    • 等级:
    • 排名:第1268名
    • 原创:258篇
    • 转载:85篇
    • 译文:11篇
    • 评论:954条
    博主的 GitHub 账号
    GitHub : Charies Gavin

        鉴于 CSDN 糟糕的用户体验,博主会将一些优质的文章迁移到 Charies Gavin's Blog  欢迎大家在 GitHub 上 Follow 博主,以及 Fork、Star、Watch 博主的项目。


      青春不老 奋斗不止


      好学若饥虚心若愚
    博客专栏