您的位置:首页 > 产品设计 > UI/UE

自动生成 serialVersionUID 的方法

2018-01-24 14:26 453 查看
当我们用 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
中设置提示级别,如
Warning
Error
等,默认为
Warning
,也建议选择
Warning
级别的提示。



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




如上图所示,显然我们已经利用 IntelliJ IDEA 中自动生成
serialVersionUID
啦!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: