Serialization中的readObjectNoData

来源:互联网 发布:股票指数数据 编辑:程序博客网 时间:2024/06/05 08:18

readObjectNoData方法是JDK1.4中增加的. 但一直以来, 国内外的书上都只是提到而已, 没有真正涉及到例子.

今天有学生问到其用法, 说明一下.

readObjectNoData   原始情况    pojopublic class Person implements Serializable {               private int age;                public Person() {  }              //setter getter...      }    序列化         Person p = new Person();              p.setAge(10);              ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("c:/person.ser"));              oos.writeObject(p);             oos.flush();              oos.close();  类结构变化后, 序列化数据不变     pojo      Animal        implements Serializable        显式编写readObjectNoData        public class Animal implements Serializable {                  private String name;                 public Animal() {  }                 //setter getter...                 private void readObjectNoData() {                       this.name = "zhangsan";                 }          }      Person         extends Animal        public class Person extends Animal implements Serializable {                  private int age;                  public Person() {  }                 // setter getter...         }    反序列化      ObjectInputStream ois = new ObjectInputStream(new FileInputStream("c:/person.ser"));         Person sp = (Person) ois.readObject();         System.out.println(sp.getName());      readObject时, 会调用readObjectNoData


 

 

 

 

 

 


 

原创粉丝点击