详述 IntelliJ 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插件

如上图所示,点击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啦!

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Hadoop实操

NameNode Metadata备份和恢复最佳实践

对于未启用HA的NameNode集群,fsimage和edits将存储在活动的NameNode和SecondNameNode上,建议定期备份fsimage和ed...

2082
来自专栏伦少的博客

spark-submit提交Spark Streamming+Kafka程序

3275
来自专栏云计算教程系列

在腾讯云CVM上搭建Hadoop集群

本教程将介绍如何在腾讯云CVM上搭建Hadoop集群。Hadoop中是一个Apache的框架,可以让你通过基本的编程处理跨服务器集群的分布式方式的大型数据集。H...

2384
来自专栏Hadoop实操

CDSW1.4的新功能

2013
来自专栏静默虚空的博客

Yarn 入门

[package]会被加入到package.json文件中的依赖列表,同时yarn.lock也会被更新。

1193
来自专栏Jed的技术阶梯

Spark性能调优01-资源调优

在开发完Spark作业之后,就该为作业配置合适的资源了。 Spark的资源参数,基本都可以在spark-submit命令中作为参数设置。

1292
来自专栏个人分享

Zookeeper + Hadoop2.6 集群HA + spark1.6完整搭建与所有参数解析

yum install autoconfautomake libtool cmake

1762
来自专栏简单聊聊Spark

Mapreduce实现原理总结

一.首先,我们从客户端,JobTracker,TaskTracker这个层面来分析整个mapreduce过程

2371
来自专栏大数据技术学习

大数据-Hadoop小文件问题解决方案

HDFS中小文件是指文件size小于HDFS上block(dfs block size)大小的文件。大量的小文件会给Hadoop的扩展性和性能带来严重的影响。

2887
来自专栏Hadoop实操

如何为Kerberos环境的CDH集群在线扩容数据节点

Hadoop集群其中一个优点就是可伸缩性(横向扩展),通过增加计算节点使服务容量产生线性增长的能力。可伸缩的应用程序的主要特点是:只需要增加资源,而不需要对应用...

5808

扫码关注云+社区

领取腾讯云代金券