- 浏览: 63514 次
- 性别:
- 来自: 四川
最新评论
通常我们对一个bean的类进行可序列化实现时,一般都只继承了可序列化接口,而没有添加serialVersionUID属性,这样会引发后续的问题:
- 先写如上的代码,调用writeObject方法将这个对象序列化。
- 先别急着调用反序列化,为Bean类新增加一个属性b,编译类。
-
调用readObject方法进行反序列化,这时就会看到如下的提示:
看到了吧,和serialVersionUID有关,在重新编码后,Bean类的serialVersionUID属性变了,因为编译器会重新生成一个serialVersionUID值,与原来的值不一致,再去反序列化原有的对象时就会出错。
若我们一开始就为Bean添加一个serialVersionUID值,那不管如何修改Bean类反序列化都没有问题了,因此在对一个java bean实现序列化接口时,为其添加一个serialVersionUID值是非常有必要的(eclipse/myeclipse可以自己生成该值)。
发表评论
-
struts2 中获取 web资源的方式
2016-01-08 17:02 534在struts2中获取 web资源的方式大致可分为获取扩展 ... -
sql server、db2、oracle 存储过程动态sql语句示例
2015-01-31 19:00 1842Oracle CREATE OR REPLACE PRO ... -
ie9 中出现不明的异常(参数是必选项 (Argument not optional)、尚未实现)等
2015-01-27 23:57 1311<script type="text/jav ... -
SAXParseException: The content of element type "configuration" must match
2014-09-15 23:57 1967在mybatis的配置文件中新增加<databaseI ... -
java.lang.ClassNotFoundException: Cannot find class: DB_VENDOR
2014-09-15 23:45 2007在mybatis 中使用databaseIdProvide ... -
spring mvc3 + fastjson 转换 REST 参数以及输出
2014-03-27 00:16 4253spring 3可以支持Rest风格参数,其内置了jack ... -
eclipse中编辑log4j 的xml配置文件时,自动提示
2014-03-27 00:05 894方法1. 配置log4j.dtd文件: Windows - ... -
java json 转换之 Jackson 框架
2013-08-01 21:50 1170转自:http://www.cnblogs.com/hooj ... -
eclipse/myeclise 自定义注释中的变量名称
2013-07-01 23:18 974eclipse/myeclipse中自带了 ... -
Eclipse Class Decompiler——Java反编译插件
2012-11-08 22:41 1241Eclipse Class Decompiler,整 ... -
struts+spring+hibernate整合问题解决方法 陆续更新中....
2009-01-01 10:33 882在整合ssh过程中出现的问题和解决方法: 一、 严重: Ser ... -
DWR通过Annotation与spring整合
2009-01-21 22:05 668DWR 2.0 增加了一个很有趣的新特性,Annotat ... -
div嵌套页面 div加载页面 (其中获取目标页面的内容是用dwr框架连接java程序做的)
2009-03-15 16:58 659前段时间因为有需要,要在div中加载一个页面。但是以前没做过, ... -
tapestry autocomplete 更改样式及定位
2009-07-09 19:02 722版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文 ... -
Java中的main()方法详解
2009-07-12 16:23 653源文作者:leizhimin 源文链接:http:/ ... -
tapestry5 集成 spring 的事务管理
2009-07-22 15:43 601说明:使用的是tapestry5.1.0.5 和spring ... -
tapestry5 布局 参数的处理
2009-07-23 17:24 434<?xml version="1.0" ... -
tapestry不支持 等html特殊符号的解决方法
2009-07-23 17:34 547在使用tapestry时,偶然发现使用 &a ... -
WebService大讲堂之Axis2(1):用POJO实现0配置的WebService
2009-07-28 15:01 431转自:http://space.itpub.net ... -
WebService大讲堂之Axis2(2):复合类型数据的传递
2009-07-28 15:25 521转自:http://space.itpub.net/12921 ...
相关推荐
但在某些情况下,例如在IntelliJ IDEA(简称IDEA)中开发时,开发者可能会遇到实体类实现了序列化接口却无法自动生成序列化ID的问题。本文将详细介绍这一问题的原因以及如何解决。 #### 二、序列化简介 序列化是将...
Java序列化(Serializable)是Java平台提供的一种持久化机制,允许将对象的状态转换为字节流,以便存储到磁盘、数据库中,或者在网络上传输。这一过程被称为对象的序列化。反之,将字节流恢复为原来的对象状态称为反...
Java中的序列化主要是通过实现`Serializable`接口完成的,该接口没有声明任何方法,是一个标记接口。实现这个接口的类会被认为是可以被序列化的。 #### 关键属性`serialVersionUID` 1. **作用**:`...
Serializable序列化接口没有任何方法或者字段,只是用于标识可序列化的语义。实现了Serializable接口的类可以被ObjectOutputStream转换为字节流,同时也可以通过ObjectInputStream再将其解析为对象。 Serializable...
在实现序列化时,Java会捕获对象的所有实例变量,包括它们的值,同时还会记录一些元数据,如类名、版本信息等,以确保在反序列化时能正确恢复对象。 4. **如何实现序列化?** 要实现序列化,对象的类必须实现`...
- 实现此接口后,Java虚拟机就能够自动进行序列化和反序列化操作。 2. **序列化过程:** - 创建一个`java.io.ObjectOutputStream`实例。 - 使用`ObjectOutputStream`的`writeObject()`方法将对象写出到输出流中...
这些规则确保了对象可以在不同的环境中被正确序列化和反序列化。 **6.2 流元素** 序列化流由一系列元素组成,包括对象类型、对象状态等信息。 **6.3 流协议版本** 序列化流支持不同的版本。不同的版本可能会有...
NotSerializableException 是 Java 中的一个异常,它发生在尝试序列化一个不implement Serializable 接口的对象时。今天,我们将讨论 Java 中序列化 NotSerializableException 问题的解决办法。 问题描述 --------...
在Java中,一个类可以实现`Serializable`接口来使其实例可序列化。例如: ```java public class TreeNode implements Serializable { // ... } ``` 序列化的过程通常使用`ObjectOutputStream`类完成,如下所示: ...
8. **序列化版本控制**:FST提供版本控制功能,即使序列化接口发生变化,也能保证旧版本的数据可以被正确反序列化。 在实际应用中,我们可以通过以下步骤使用FST: 1. **添加依赖**:将FST库引入到项目中,通常...
在此示例中,`Person` 类继承自 `Humanoid` 类,并实现了 `Serializable` 接口,这使得 `Person` 类可以被序列化。 #### 1.2 对象的序列化及反序列化 为了将可序列化的对象序列化到文件或其他存储介质中,需要使用...
- 为了让一个类支持序列化,只需让该类实现`java.io.Serializable`接口。这个接口没有定义任何方法,只是一个标记接口,表明类的对象可以被序列化。 4. **序列化ID** - `serialVersionUID`是一个长整型字段,用于...
实现序列化非常简单,只需要让类实现`java.io.Serializable`接口即可。这个接口没有任何方法需要实现,仅仅是一个标记接口,表明该类的实例是可序列化的。但是,需要注意的是,序列化会将对象的所有字段都包含进去,...
通过实现`java.io.Serializable`接口,一个Java对象可以获得序列化的能力。序列化不仅可以保存对象的状态,还可以在需要时恢复这些状态。 2. **反序列化**: 反序列化是序列化的逆过程,即将字节流还原为原来的Java...
在Java中,要实现序列化,对象的类需要实现`java.io.Serializable`接口。例如,`ObjectSaver.java`文件可能包含一个实现了序列化的类定义: ```java public class MySerializableObject implements Serializable { ...
为了使一个对象可以被序列化,该对象的类必须实现`java.io.Serializable`接口。这个接口没有任何方法,只是一个标记接口,表明实现了它的类的对象可以被序列化。例如: ```java import java.io.Serializable; ...
在Java中,实现序列化的类需要实现java.io.Serializable接口,否则将会抛出异常。 首先,为什么需要序列化?在web应用程序中,服务器需要保存某些对象的状态,以便在下一次会话中继续使用这些对象。这些对象称为...
在Java中,反序列化通常是通过实现`Serializable`接口并在类中包含`readObject`方法来完成的。 在Java中,`readObject`方法被设计用来在反序列化过程中恢复对象的状态。与PHP的`__wakeup`魔术方法不同,`readObject...
首先,要实现序列化,一个Java类必须实现`Serializable`接口。这是一个标记接口,没有定义任何方法,只是告诉Java虚拟机(JVM)这个类的对象是可以序列化的。例如: ```java public class MyEntity implements ...
首先,我们需要创建一个实现了`Serializable`接口的类`TestSerial`,这样Java序列化机制才能处理这个类的对象。 接下来,我们编写代码将对象序列化并输出为字节流,存储在一个临时文件`temp.out`中。 ```java ...