当我们用 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插件

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

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

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

第 2 步:设置Inspections功能

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

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

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

转载自:http://blog.csdn.net/qq_35246620/article/details/77686098

最新文章

  1. ios动态创建类Class
  2. windows 代理服务器的搭建,提供Android 端访问公网.
  3. 理解GC日志
  4. 系统启动时,spring配置文件解析失败,报”cvc-elt.1: 找不到元素 'beans' 的声明“异常
  5. python网络编程(六)---web客户端访问
  6. 批处理at命令--一切尽在计划中
  7. Emoji表情在网页中显示
  8. python 模块 DButils
  9. boot跳转到app后,中断不起作用的原因
  10. 基于Qt的图像处理技术和算法
  11. systemverilog.vim
  12. 线程锁(互斥锁Mutex)及递归锁
  13. 『TensorFlow』pad图片
  14. MySQL(十)操纵表及全文本搜索
  15. EF5.0区别于EF4.0的crud区别
  16. html5游戏之Box2d物理引擎集成
  17. mysql 给表和字段加注释
  18. mysql配置文件修改
  19. class 方法
  20. 中式台球 规则 ( ChinaBilliards )

热门文章

  1. Winform DataGridView列的单元格中动态添加图片和文字
  2. DataGridView初始化,加载数据
  3. jQuery源码分析系列 : 整体架构
  4. sass判断语句
  5. winform判断chrome是否正在最前端运行
  6. 表单校验常用原生js库
  7. UFW Essentials: Common Firewall Rules and Commands
  8. 【热门活动】开年好运开门来!送祝福,赢iPad
  9. C#启动服务
  10. MVC中用NPOI导出Excel相关问题