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啦!
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。
相关推荐
-
详述IntelliJ IDEA 中自动生成 serialVersionUID 的方法(图文)
serialVersionUID介绍 再编程过程中当涉及到对象的传输问题时,我们会采用序列化的技术,通过序列化可以将对象的状态信息转换为可以存储或传输的形式的过程.在Java当中我们可以通过实现Serializable接口来序列化对象,而serialVersionUID就是Java序列化机制中一个不可或缺的角色,可以通过在运行时判断类的serialVersionUID来验证版本一致性.在进行反序列化时,JVM会把传来的字节流中的serialVersionUID与本地相应实体(类)的serialV
-
在IDEA的maven项目中连接并使用MySQL8.0的方法教程
首先看一下我的基本的开发环境: 操作系统:MacOS 10.13.5编辑器:IDEA 2018.3其他:MySQL8.0.15.Maven 3.3.9.JDK 1.8 好,下面就正式开始: 第一步:在IDEA中新建一个maven项目 1.使用骨架创建maven项目,此处选择:maven-archetype-quickstart 2.填入GroupId和ArtifactId 3.第一个选中maven安装的文件夹,第二个选中maven安装文件夹中的conf/settings.xml,第三个如果set
-
idea 查看一个类的所有子类以及子类的子类并以层级关系显示
在Idea中直接Ctrl + t 查看类的子类是可以看到,但是他没有那种层级顺序! 我们可以在类中点击顶部菜单 Navigate -----> Type Hierarchy 或者 按F4 你会像下面一样,获得一个有层级关系的子类关系列表,跟eclipse中一样! 经过一些评论,我想说如下几点: 1.如果你的快捷键方式不是 eclipse的,那么请你在顶部菜单 Navigate -----> Type Hierarchy 看看你自己的快捷键方式所对应的快捷键. 2.多思考,一个 idea 的使用
-
基于idea把springboot项目部署到docker
这篇文章主要介绍了基于idea把springboot项目部署到docker,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 一.idea安装docker插件 1.安装 2.配置 备注:要使docker可以通过2375端口访问,需要配置docker vim /lib/systemd/system/docker.service 修改如下 3.配置容器 Dockerfile文件(此处为了方便,将Dockerfile文件放到根目录下面) FROM jav
-
史上最全的IDEA快捷键总结
1. 编辑快捷键 编辑快捷键 介绍 psvm + Tab 生成main方法 sout + tab 生成输出语句 Ctrl+X / Ctrl + Y 删除一行 Ctrl+D 复制一行 Ctrl+/ 或 Ctrl+Shift+/ 注释代码 Ctrl + Z 撤销 Ctrl + Shift + Z 取消撤销 Ctrl + C 复制 Ctrl + V 粘贴 Ctrl + O 重写方法 Ctrl + I 实现方法 Ctr + shift + U 大小写转化 Ctrl + Shift + J 整合两行为一行
-
使用idea启动DataX的方法示例
datax web项目地址: https://github.com/WeiYe-Jing/datax-web vm option 需要写上你用maven打包后生成的target目录 -Ddatax.home=/Users/huzekang/openSource/DataX/target/datax/datax program args -mode standalone -jobid -1 -job /Users/huzekang/openSource/DataX/job-sample/oracl
-
心动吗?正大光明的免费使用IntelliJ IDEA商业版
IntelliJ IDEA是广受Java开发者喜爱的工具,其商业版的价格十分昂贵,如下图: 现在有机会免费获取IntelliJ IDEA的正版License,您是否心动呢?我把自己成功申请License的步骤记录下来,咱们一起行动吧. 申请资格要求 本次申请必须的唯一要求,就是您要有自己的开源项目,至于项目的具体内容并没有明确的规定,我这里用的是自己开源在GitHub上的项目,地址是:https://github.com/zq2599/blog_demos 这个项目并不是类似Spring这类的完
-
最新idea2020注册码永久激活(激活到2100年)
首先有图有真相: 资源链接: 链接: https://pan.baidu.com/s/1mvU2qDxJPCXbCuVaCVCjGA 提取码: k3e2 第一步:将bin目录下的三个文件拷贝到IDEA安装之后的bin目录下,替换文件. 第二步:编辑idea.exe.vmoptions和idea64.exe.vmoptions文件,这两个文件的修改方式完全相同,都是修改文件的最后一行:"-javaagent:".确保"-javaagent:将jar文件的全路径拷贝到这里&quo
-
idea如何自动生成serialVersionUID
这篇文章主要介绍了idea如何自动生成serialVersionUID,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 当我们用 IntelliJ IDEA 编写类并实现 Serializable(序列化)接口的时候,可能会遇到这样一个问题,那就是: 无法自动生成serialVersionUID. 而serialVersionUID又是一个非常重要的字段,因为 Java 的序列化机制是通过在运行时判断类的serialVersionUID来验证版本
-
IDEA如何自动生成serialVersionUID的设置
序列化和反序列化 Java是面向对象的语言,与其他语言进行交互(比如与前端js进行http通信),需要把对象转化成一种通用的格式比如json(前端显然不认识Java对象),从对象到json字符串的转换,就是序列化的过程,反过来,从json字符串转换成Java对象,就是反序列化的过程. serialVersionUID是什么 反序列化的过程,需要从一个json字符串生成一个Java对象. Gson gson = new Gson(); Request req = gson.fromJson("re
-
Mybatis如何自动生成数据库表结构总结
一般情况下,用Mybatis的时候是先设计表结构再进行实体类以及映射文件编写的,特别是用代码生成器的时候. 但有时候不想用代码生成器,也不想定义表结构,那怎么办? 这个时候就会想到Hibernate,然后想到它的hibernate.hbm2ddl.auto配置项. 所以手工创表的问题可以很方便的迅速用Hibernate来解决. 那有人问啦:就是不想用Hibernate才换的Mybatis,你这又兜回去了吗? 其实不是的,我们需要的就是单单一个hbm2ddl功能. 其实应该这么想:有一款工具能够自
-
使用mybatis-plus-generator进行代码自动生成的方法
为了解放程序员的双手,减少重复性代码的编写,推荐使用插件:mybatis-plus-generator 进行代码自动生成.下面我将详细介绍通过mybatis-plus-generator 插件自动生成 controller.service.mapper.serviceImpl相关代码. 项目工程目录总览如下: 1. 使用 idea 创建 maven 项目,引入相关依赖,项目pom文件如下所示: <?xml version="1.0" encoding="UTF-8&qu
-
springboot+mybatis通过实体类自动生成数据库表的方法
前言 本章介绍使用mybatis结合mysql数据库自动根据实体类生成相关的数据库表. 首先引入相关的pom包我这里使用的是springboot2.1.8.RELEASE的版本 <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.1.0</ve
-
利用JAVA反射,读取数据库表名,自动生成对应实体类的操作
本代码是利用java反射,读取数据库表自动根据表名生成实体类,数据库采用老牌SQLSERVER 2000,驱动为JTDS,其他数据库可根据情况自定修改. 代码中包含了大部分数据库类型与JAVA类型的转换,少数未包含进去的会在生成代码时打印出来,方面后期查找修改. import java.io.File; import java.io.FileWriter; import java.io.IOException; import java.io.PrintWriter; import java.sq
-
ExtJS4如何自动生成控制grid的列显示、隐藏的checkbox
由于某种原因,需要做一个控制grid列显示的checkboxgroup,虽然EXTJS4中的gridpanel自带列表可以来控制列的显示隐藏,但是有这样的需求(需要一目了然) 下面先上图 接着前几天做的工作,今天上午完成了定制字段,思路是在上面的普通查询或者高级查询结束以后,获得了列的fields,columns等信息,然后交给一个处理函数 makeCustomMadePanel,该函数用来生成checkboxgroup,生成的时候给它加上一个事件,原本以为checkbox会有类似于check的
-
使用Ruby on Rails和PostgreSQL自动生成UUID的教程
Rails 4 能原生态的支持Postgres 中的UUID(Universally Unique Identifier,可通用的唯一标识符)类型.在此,我将向你描述如何在不用手工修改任何Rails代码的情况下,用它来生成UUID. 首先,你需要激活Postgres的扩展插件'uuid-ossp': class CreateUuidPsqlExtension < ActiveRecord::Migration def self.up execute "CREATE EXTENSION \&
-
利用原生JS自动生成文章标题树的实例
实现原理很简单,就是循环文章模块,并抽取其中的h2.h3标签,将其中的内容赋予给新建的title树. 代码如下: HTML代码: <div class="contextBox"> <div id="article"> <h2>二级标题</h2> <h3>三级标题</h3> <p>hello hello hello hello hello hello hello hello hello
随机推荐
- 在jsp程序中使用com组件
- UITableViewCell在编辑状态下背景颜色的修改方法
- ASP.NET 中的Application详解
- js链表操作(实例讲解)
- 火狐下input焦点无法重复获取问题的解决方法
- ASP.NET OutputCache详解
- 分享一个取自HoverTree项目的.NET分页类
- python中OrderedDict的使用方法详解
- js数组去重的方法汇总
- 用PHP实现多级树型菜单
- Python正则表达式分组概念与用法详解
- 3Z版基于jquery的图片复选框(asp.net+jquery)
- jquery异步跨域访问代码
- ArrayList删除集合中某一属性相同的元素方法(推荐)
- android几种不同对话框的实现方式
- Android 颜色大全color.xml文件使用方法
- Web项目打成war包部署Tomcat时运行startup.bat直接闪退部署失败的快速解决方案
- JavaScript事件对象深入详解
- Python中利用aiohttp制作异步爬虫及简单应用
- Java中extends一定是代表继承吗?