/*****(Person类)*******/
import java.io.Serializable;
public class Person implements Serializable {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
/*****(将对象序列化到一个文件)*******/
import java.io.FileOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
public class WhySerialversionUID {
public static void main(String[] args) throws Exception {
Person person= new Person();
person.setName("jack");
ObjectOutputStream oo = new ObjectOutputStream (new FileOutputStream(new File("E://jack.test")));
oo.writeObject(person);
oo.close();
/*****(通过以下方法可以正常的将文件中保存的对象还原到内存中)*******/
import java.io.FileOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
public class WhySerialversionUID {
public static void main(String[] args) throws Exception {
ObjectInputStream ois = new ObjectInputStream(new FileInputStream(new File("E:\\jack.test")));
Person person = (Person)ois.readObject();
String name= person.getName();
System.Out.Print("name is: "+name); 一切都那么顺利,但是如果在序列化之后,Person这个类发生了改变呢?比如,多了一个成员变量。我们做如下试验,还是先将对象序列化到一个文件中,之后在Person这个类中添加一个成员变量,如下:import java.io.Serializable;
public class Person implements Serializable {
private String name;
//添加这么一个成员变量
private String address;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
之后,我们再去运行一下还原,就发现运行出错了,会报如下错误:原文地址:http://blog.csdn.net/happy_cheng/article/details/44069741