idea如何自动生成serialVersionUID

 更新时间:2020年02月12日 11:15:38   作者:小白coder  
这篇文章主要介绍了idea如何自动生成serialVersionUID,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

这篇文章主要介绍了idea如何自动生成serialVersionUID,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

当我们用 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插件,在这里,选择Plugins,并搜索GenerateSerialVersionUID,如果没有发现此插件,则可以点击Search in repositories进行搜索,我目前是已经安装状态,所以下面显示的是uninstall,如果你未装过,则显示install,点击install按钮就可完成安装。

第 2 步:设置Inspections功能

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

创建一个类并实现Serializable接口,然后按alt+insert键,即可收到提示,然后选择SerialVersionUID:

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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • 深度解析SpringBoot中@Async引起的循环依赖

    深度解析SpringBoot中@Async引起的循环依赖

    本文主要介绍了深度解析SpringBoot中@Async引起的循环依赖,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-02-02
  • 一文搞懂Spring Bean中的作用域和生命周期

    一文搞懂Spring Bean中的作用域和生命周期

    Spring作为当前Java最流行、最强大的轻量级框架,受到了程序员的热烈欢迎。了解Spring Bean的作用域与生命周期是非常必要的,快跟随小编一起学习学习吧
    2022-06-06
  • Spring Data JPA实现数据持久化过程详解

    Spring Data JPA实现数据持久化过程详解

    Spring Data JPA是一个流行的Java持久化框架,它在Java应用程序中提供了一种简单、一致和易于使用的方式来访问各种数据库。本文将介绍Spring Data JPA的基本概念和用法并提供一个完整的实例,帮助您更好地理解它的使用方法和优势
    2023-05-05
  • Mybatis-Plus 官方神器发布

    Mybatis-Plus 官方神器发布

    mybatis-mate 为 mp 企业级模块,支持分库分表,数据审计、数据敏感词过滤(AC算法),字段加密,字典回写(数据绑定),数据权限,表结构自动生成 SQL 维护等,旨在更敏捷优雅处理数据,今天介绍一个 MyBatis - Plus 官方发布的神器,感兴趣的朋友一起看看吧
    2021-11-11
  • MyBatis实现配置加载的步骤

    MyBatis实现配置加载的步骤

    本文主要介绍了MyBatis实现配置加载的步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-05-05
  • MyBatis中SqlSession实现增删改查案例

    MyBatis中SqlSession实现增删改查案例

    这篇文章主要介绍了MyBatis中SqlSession实现增删改查案例,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2017-03-03
  • Spring中的@Async原理分析

    Spring中的@Async原理分析

    这篇文章主要介绍了Spring中的@Async原理分析,自定义new ThreadPoolExecutor并调用invokeAll等进行并发编程,后面发现只要在方法上添加@Async注解,并使用@EnableAsync进行开启默认会使用SimpleAsyncTaskExecutor类型,需要的朋友可以参考下
    2024-01-01
  • 浅谈Java中Properties类的详细使用

    浅谈Java中Properties类的详细使用

    properties类继承自hashtable,通常和io流结合使用。它最突出的特点是将key/value作为配置属性写入到配置文件中以实现配置持久化,或从配置文件中读取这些属性。它的这些配置文件的规范后缀名为".properties"。表示了一个持久的属性集
    2021-06-06
  • java设计模式之建造者模式学习

    java设计模式之建造者模式学习

    建造者模式(Builder Pattern)主要用于“分步骤构建一个复杂的对象”,在这其中“分步骤”是一个稳定的算法,下面给出了详细的示例
    2014-01-01
  • 解决MyEclipse下启动项目时JBoss内存溢出的问题

    解决MyEclipse下启动项目时JBoss内存溢出的问题

    下面小编就为大家带来一篇解决MyEclipse下启动项目时JBoss内存溢出的问题。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-07-07

最新评论