源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

详述IntelliJ IDEA 中自动生成 serialVersionUID 的方法(图文)

  • 时间:2020-11-24 12:07 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:详述IntelliJ IDEA 中自动生成 serialVersionUID 的方法(图文)
[b]serialVersionUID介绍[/b] 再编程过程中当涉及到对象的传输问题时,我们会采用序列化的技术,通过序列化可以将对象的状态信息转换为可以存储或传输的形式的过程。在Java当中我们可以通过实现Serializable接口来序列化对象,而serialVersionUID就是Java序列化机制中一个不可或缺的角色,可以通过在运行时判断类的serialVersionUID来验证版本一致性。在进行反序列化时,JVM会把传来的字节流中的serialVersionUID与本地相应实体(类)的serialVersionUID进行比较,如果相同就认为是一致的,可以进行反序列化,否则就会出现序列化版本不一致的异常。 当我们用 IntelliJ IDEA 编写类并实现 Serializable(序列化)接口的时候,可能会遇到这样一个问题,那就是: [b]无法自动生成serialVersionUID[/b]. 而[code]serialVersionUID[/code]又是一个非常重要的字段,因为 Java 的序列化机制是通过在运行时判断类的[code]serialVersionUID[/code]来验证版本一致性的。在进行反序列化时,JVM 会把传来的字节流中的[code]serialVersionUID[/code]与本地相应实体(类)的[code]serialVersionUID[/code]进行比较,如果相同就认为是一致的,可以进行反序列化,否则就会出现序列化版本不一致的异常。 一般来说,定义[code]serialVersionUID[/code]的方式有两种,分别为: [list=1] [*]采用默认的[code]1L[/code],具体为[code]private static final long serialVersionUID = 1L;[/code][/*] [*]根据类名、接口名、成员方法及属性等来生成一个[code]64[/code]位的哈希字段,例如 [code]private static final long serialVersionUID = XXXL;[/code][/*] [/list] 而 Java 类进行序列化也两个主要目的,分别为: [list=1] [*]把对象的字节序列永久地保存到硬盘上,通常存放在一个文件中;[/*] [*]在网络上传送对象的字节序列。[/*] [/list] 在这里,我们就一起来看看如何利用 IntelliJ IDEA 自动生成[code]serialVersionUID[/code]. [b]第 1 步:安装GenerateSerialVersionUID插件[/b] [img]http://files.jb51.net/file_images/article/201711/2017113011322944.png[/img] 如上图所示,点击[code]Preferences[/code],进入如下界面: [img]http://files.jb51.net/file_images/article/201711/2017113011322945.png[/img] 在这里,选择[code]Plugins[/code],并搜索[code]GenerateSerialVersionUID[/code],如果没有发现此插件,则可以点击[code]Search in repositories[/code]进行搜索: [img]http://files.jb51.net/file_images/article/201711/2017113011322946.png[/img] 如上图所示,点击[code]install[/code],即可安装此插件。 [b]第 2 步:设置Inspections功能[/b] [img]http://files.jb51.net/file_images/article/201711/2017113011322947.png[/img] 如上图所示,进入[code]Default Settings[/code],在[code]Inspections[/code]设置页面中,勾选[code]Serializable class without 'serialVersionUID'[/code],并且还可以在[code]Severity[/code]中设置提示级别,如[code]Warning[/code]、[code]Error[/code]等,默认为[code]Warning[/code],也建议选择[code]Warning[/code]级别的提示。 [img]http://files.jb51.net/file_images/article/201711/2017113011322948.jpg[/img] 如上图所示,创建一个类并实现[code]Serializable[/code]接口,然后按[code]alt[/code]+[code]Enter[/code]键,即可收到提示,然后选择[code]SerialVersionUID[/code]: [img]http://files.jb51.net/file_images/article/201711/2017113011322949.png[/img] 如上图所示,显然我们已经利用 IntelliJ IDEA 中自动生成[code]serialVersionUID[/code]啦! 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程素材网。
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部