当前位置: 代码迷 >> Eclipse >> Java ArrayList对象怎么序列化?怎么反序列化显示对象的所有属性
  详细解决方案

Java ArrayList对象怎么序列化?怎么反序列化显示对象的所有属性

热度:31   发布时间:2016-04-23 00:23:49.0
Java ArrayList对象如何序列化?如何反序列化显示对象的所有属性?
//==========================================================Person 类 是Teacher和Student 的父类
public class Person {
private String name;
private int age;

public Person(){}//default constructor!!!

public Person(String name,int age){///////////////
this.name=name;
this.age=age;
}

public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}

}



for(int i=0;i<c.getS().size();i++)
System.out.println(c.getS().get(i));

for(int i=0;i<c.getT().size();i++)
System.out.println(c.getT().get(i));

}
}
//============================================================Student类
public class Student extends Person{
private int grade;

public Student(){}

public Student(String name,int age,int grade){
super(name,age);
this.grade=grade;
}

public int getGrade() {
return grade;
}
public void setGrade(int grade) {
this.grade = grade;
}

@Override
public String toString() {         
return "Student [grade=" + grade + ",Name=" + getName() + ", Age=" + getAge() + "]";
}
}
//=========================================================Teacher类


public class Teacher extends Person{
private int working_years;

public Teacher(){}

public Teacher(String name,int age,int working_years){////constructor 
super(name,age);
this.working_years=working_years;
}

public int getWorking_years() {
return working_years;
}
public void setWorking_years(int working_years) {
this.working_years = working_years;
}

@Override
public String toString() {
return "Teacher [working_years=" + working_years
+ ", Name="
+ getName() + ", Age=" + getAge() +"]";
}
}
//===========================================================classroom 类,实例化了Arraylist
import java.util.ArrayList;

public class Classroom {

public Classroom(){};//constructor;

private ArrayList<Student> s=new ArrayList<Student>();//必须新建!!!!!!!
private ArrayList<Teacher> t=new ArrayList<Teacher>();//ArrayList t = new ArrayList();会出警告,泛型问题


public ArrayList<Teacher> getT() {
return t;
}

public void setT(ArrayList<Teacher> t) {
this.t = t;
}

public ArrayList<Student> getS() {
return s;
}

public void setS(ArrayList<Student> s) {
this.s = s;
}
}
//==================================================place 类,用于测试之前的ArrayList

public class Place {
public static void main(String args[]){

Student s1=new Student("Amy",19,1);
Student s2=new Student("Tom",20,2);

Teacher t1=new Teacher("Tom",45,10);
Teacher t2=new Teacher("Sam",50,15);

Classroom c=new Classroom();

c.getS().add(s1);
c.getS().add(s2);
c.getT().add(t1);
c.getT().add(t2);

for(int i=0;i<c.getS().size();i++)
System.out.println(c.getS().get(i));

for(int i=0;i<c.getT().size();i++)
System.out.println(c.getT().get(i));
}
}

//===============================================
以上代码的意图是classroom中有Student与Teacher,Place类只是用于测试的。
请大神指点在此基础上如和实现ArrayList的序列化与反序列化,在反序列化时输出Student与Teacher的各个属性,恳请大神指教!!小弟感激不尽!


------解决思路----------------------
往ObjectOutputStream里面写,从ObjectInputStream里面读
  相关解决方案