转:关于实现序列化的类提示没有定义serialVersionUID域

The serializable class XXX does not declare a static final serialVersionUID field of type long

可序列化的类 CreateBPOVIEW 未声明类型为 long 的静态终态 serialVersionUID 字


serialVersionUID作用:
序列化时为了保持版本的兼容性,即在版本升级时反序列化仍保持对象的唯一性。

你可以随便写一个,在Eclipse中它替你生成一个,有两种生成方式:
一个是默认的1L,比如:private static final long serialVersionUID = 1L;
一个是根据类名、接口名、成员方法及属性等来生成一个64位的哈希字段,比如:private static final long serialVersionUID = -8940196742313994740L;之类的。

当你一个类实现了Serializable接口,如果没有定义serialVersionUID,Eclipse会提供这个提示功能告诉你去定义之。
在Eclipse中点击类中warning的图标一下,Eclipse就会自动给定两种生成的方式,如上面所述。如果不想定义它,在Eclipse的设置中也可以把它关掉的,设置如下:
Window ==> Preferences ==> Java ==> Compiler ==> Error/Warnings ==> Potential programming problems
将Serializable class without serialVersionUID的warning改成ignore即可。

如果你没有考虑到兼容性问题时,就把它关掉,不过有这个功能是好的,只要任何类别实现了Serializable这个接口的话,如果没有加入serialVersionUID,Eclipse都会给你warning提示,这个serialVersionUID为了让该类别Serializable向后兼容。

如果你的类Serialized存到硬盘上面后,可是后来你却更改了类别的field(增加或减少或改名),当你Deserialize时,就会出现Exception的,这样就会造成不兼容性的问题。

但当serialVersionUID相同时,它就会将不一样的field以type的预设值Deserialize,这个可以避开不兼容性的问题。


Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=671060
Python pyserial 模块安装(pycharm中安装)[ModuleNotFoundError: No module named ‘serial‘ 报错解决方法] 如下代码没有 serial 模块就会报错:ModuleNotFoundError: No module named 'serial' import serial port_list = list(serial.tools.list_ports.comports()) File(文件) -->Setting(设置)---> Projcet:xx(项目:xx) --->Project Interperter(Python 解释器)--->点“+”--->搜索框里搜p.. 阅读详情

相关推荐

JDK 序列化 serialVersionUID应用

通常,RPC调用有多种序列化方式,本文简单介绍一下JDK自带的序列化接口Serializable使用事项。一、serialVersionUID一般实现Serializable接口的序列化对象会要求声明一个long型的serialVersionUID(非强制,不写会有默认值),该变量有何用?1、序列化操作时,系统会把当前声明的serialVersionUID写入到序列化文件中,用于反序列化时系统会...

Think In JAVA—Max 1205

关于实现序列化提示没有定义serialVersionUID

The serializable class XXX does not declare a static final serialVersionUID field of type longserialVersionUID作用: 序列化时为了保持版本的兼容性,即在版本升级时反序列化仍保持对象的唯一性。 你可以随便写一个,在Eclipse中它替你生成一个,有两种生成方式:一个是默认的1L,比如:pri...

简单就是美! 1036

智能电网中的智能调度与优化算法研究

本文研究智能电网中的智能调度与优化算法,旨在提高电网运行的效率与可靠性,减少能源浪费和设备故障的风险。在智能电网日益复杂化的背景下,传统的调度方法已难以满足高效、稳定的运行要求,因此亟需借助先进的优化算法对电网进行智能调度。本文第一深入分析智能电网调度中的关键问题与挑战,探讨优化算法在智能电网中的应用现状,并分析常见的优化算法,如遗传算法、粒子群算法和模拟退火算法。随后,本文构建智能电网的调度优化数学模型,并对电网负荷、发电模型及约束条件进行详细建模。在算法部分,本文提出改进的粒子群算法和遗传算法,并结合M

weixin_44553616的博客 1850

解决办法:The serializable class XXX does not declare a static final serialVersionUID field of type long

今天在写java的时候遇到了一个警告,我自定义了一个异常,继承Exception,然后eclipse就报警告了,这里说一下解决方法。 警告内容:The serializable class XXX does not declare a static final serialVersionUID field of type long 这个警告一般来讲不影响程序的运行,它的意思是:序列化XXX 没...

嵌入式Linux充电站 1万+

关于"the serializable class XXXXXXXX does not declare a static final seriaVersionUID field of type long"

<br />对于“the serializable class XXXXXXXX  does not declare a static final seriaVersionUID field of type long”的警告<br />系统一直会提示三种快速解决方案:<br /> <br />1.add default serial version ID<br />2.add generated serial version ID<br />3.add "Suppress Warnings"  'servi

huangfudy的专栏 3151

JAVA 序列化、反序列化以及serialVersionUID

前言 最近接手的老项目也不少,我在看拉下老项目,看同事敲代码的时候, 无聊问到同事,这个为啥要实现序列化? 你看有些序列化不是嘛,但是有些又序列化了,为啥? 为啥你现在新建的也序列化? 你知道序列化有啥用么? 一串连问后,得到了短暂的宁静。 我才发现, 其实很多人都没有去了解过这些 ,大多数都是脑子里有个模糊的概念,看到别人这么做,也跟着这么做。 所以,我决定写一篇关于这个...

默默不代表沉默 3660

private static final long serialVersionUID实现序列化中出现的意义

private static  final  long  serialVersionUID实现序列化中出现的意义实现java.io.Serializable这个接口是为序列化,serialVersionUID 用来表明实现序列化的不同版本间的兼容性。如果你修改了此, 要修改此值。否则以前用老版本的序列化恢复时会出错。 实现后如果你用的是工具的话会出来警告,他会提示你,可以自动生成p

my zone 1万+

什么是序列化 serialVersionUID是什么

serialVersionUID

weixin_46048519的博客 3002

java中在实现序列化接口时-serialVersionUID字段

序列化是将对象的状态换为字节流的过程,以便能够将该对象保存到文件中、通过网络传输或持久化到数据库中。Java 提供了接口,允许开发者轻松地将 Java 对象序列化实现了接口的对象可以被序列化和反序列化。反序列化序列化的逆过程,它将保存的字节流重新化为对象,恢复对象的状态。通过这种机制,Java 程序可以在运行期间保持对象状态的持久性,并且可以跨网络、文件系统等传递复杂对象。是接口中的一个静态变量,用来表明序列化的版本标识符。它是一个long的定义通常为,一般建议每个的都显式定义

Flying_Fish_roe的博客 1351

什么是 serialVersionUID序列化对象时必须提供 serialVersionUID 吗?

通过IDE自动生成一个serialVersionUID ,由、属性等信息计算而来开发环境:IEDA找到File下的Settings,如图:选中这两个框并应用。

qq_43842093的博客 2177

idea 添加serialVersionUID提示

idea添加 serialVersionUID提示

寂夜了无痕的博客 4986

javaserialVersionUID的作用

原文出处:https://www.cnblogs.com/duanxz/p/3511695.html实现Serializable接口的目的是为可持久化,比如在网络传输或本地存储,为系统的分布和异构部署提供先决条件。若没有序列化,现在我们所熟悉的远程调用,对象数据库都不可能存在,serialVersionUID适用于java序列化机制。简单来说,JAVA序列化的机制是通过判断的serialVer...

u014750606的博客 22万+
上一篇: Eclipse 运行命令行参数大全
下一篇: 光标的帖子总结(Range的使用)
jeffnono
博客等级 码龄22年 0粉丝 0原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值