Java中Vo类实现了Serializable标示可序列化的,此时有:
private static final long serialVersionUID = 1L;
这个值是为了序列化和反序列化的时候使用的,如果类发生了改变如:增加方法或者增加了属性那么需要从新生成这个值,这个值的生成是基于此类的属性、方法、类名、表明而生成的一个唯一long型的hash值。
序列化和反序列化采用ObjectOutputStream和ObjectInputStream
如果版本相同,序列化之后增加了一个属性那么在serialVersionUID不变的情况下反序列化回来对应的属性为null,如果升级了版本那么报错。
其他代码如下:
class Student implements Serializable {
private static final long serialVersionUID = -8128337695736294309L;
private String id;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
@Override
public String toString() {
return "Student [id=" + id + ", name=" + id + "]";
}
}
public static void writeObject(Object o) throws Exception {
File f = new File("d:/user.tmp");
if (f.exists()) {
f.delete();
}
FileOutputStream os = new FileOutputStream(f);
ObjectOutputStream oos = new ObjectOutputStream(os);
oos.writeObject(o);
oos.close();
os.close();
}
public static Student readObject(File f) throws Exception {
InputStream is = new FileInputStream(f);
ObjectInputStream ois = new ObjectInputStream(is);
return (Student) ois.readObject();
}
分享到:
相关推荐
Java中serialVersionUID的解释,对于版本的说明解释问题
以下是对Java中的serialVersionUID进行了全面的分析介绍。需要的朋友可以过来参考下
NULL 博文链接:https://jnh.iteye.com/blog/1300193
三期第一张IO笔记 6
主要介绍了java类中serialVersionUID的作用及其使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
序列化版本号serialVersionUID的作用_动力节点Java学院整理.
本篇文章主要介绍了详述IntelliJ IDEA 中自动生成 serialVersionUID 的方法(图文),具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
主要介绍了java序列化和serialVersionUID的使用方法实例的相关资料,这里说明很详细的使用方法让你彻底学会,需要的朋友可以参考下
614.612.JAVA基础教程_IO流与网络编程-serialVersionUID的理解(614).rar
private static final long serialVersionUID = 1L; private JButton browseBtn; private JButton histogramBtn; private JButton compareBtn; private Dimension mySize; // image operator private ...
private static final long serialVersionUID = 1L; private String filename; @SuppressWarnings("rawtypes") public String export() throws Exception { String templateFile = "18.xls"; // String sql...
全面解析了java中serialVersionUID的作用,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
private static final long serialVersionUID = 2568625249670479556L; GamePanel mp=null; public static final int AREAWIDTH=400; public static final int AREAHEIGHT=300; public static void main(String...
private static final long serialVersionUID = 7025768684443110109L; public static void main(String[] args) { new TT().getFilePathName(); } public String getFilePathName() { TreeMap,File> ...
private static final long serialVersionUID = 1L; JPanel panel = new JPanel(new BorderLayout()); JPanel panel1 = new JPanel(); JPanel panel2 = new JPanel(new GridLayout(7, 7)); JPanel panel3 = new...
阿里巴巴开发手册,(四)OOP 规约,第 13 条解释如下: 【强制】序列化类新增属性时,请...首先我们需要了解一下序列化,我们可以简单了理解序列化就是把 Java 对象转换成另一种形态的数据,这种形态的数据可以用于
基于JAVA的拼图小游戏源码。首先将一张大图分为9块小图片,而后将小图片封装在一个类(继承JButton)因此每张图片都为一个按扭 public class Cell extends JButton { private static final long serialVersionUID...
import java.awt.Rectangle; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.KeyEvent; import java.awt.event.KeyListener; import java.awt.event....
Java序列化机制(2)- serialVersionUID 实验 http://blog.csdn.net/suileisl/article/details/16991753
主要介绍了idea如何自动生成serialVersionUID,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下