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

zhongguojiexiaochen 2014-05-19 04:53:36
//==========================================================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的各个属性,恳请大神指教!!小弟感激不尽!

...全文
3715 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
shikebing 2015-07-23
  • 打赏
  • 举报
回复
这个文章也写的很详细,推荐看看 http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytp19
shine333 2014-05-19
  • 打赏
  • 举报
回复
往ObjectOutputStream里面写,从ObjectInputStream里面读
  • 打赏
  • 举报
回复
这个我知道,但是能否给个具体的代码啊?
jl13972236494 2014-05-19
  • 打赏
  • 举报
回复
继承implements java.io.Serializable就可以了
tony4geek 2014-05-19
  • 打赏
  • 举报
回复
shine333 2014-05-19
  • 打赏
  • 举报
回复
implements java.io.Serializable

58,453

社区成员

发帖
与我相关
我的任务
社区描述
Java Eclipse
社区管理员
  • Eclipse
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧