如何实现对象的深度序列化
小弟想实现如下功能:
有如下一个类,我在创建了这个类的对象之后,想把它直接传递给另外一个对象中调用。
如果这个被传递的对象中都是基本数据类型的话,如
public class Person {
String name;
String surname;
Date birthdate;
int age;
public Person(String n, String s, Date d, int a) {
name = n;
surname = s;
birthdate = d;
age = a;
}
public String toString() {
return (name + " " + surname + " born on " + birthdate.toString() + " age = " + age);
}
}
实现这个功能不难,直接在Person类定义中加上implements Serializable 就可以了。
但问题是:现在如果想实现以下对象的序列化,就不行了。
我想着原因可能是因为这个类里面包含Vector型的dataPoints,而dataPoints又是由多个Person型的对象所组成的Vector容器。这样如何序列化???????
public class DataService {
private Vector dataPoints; //Vector变量保存数据集
public DataService() { //从DataSet对象中得到数据集,保存在Vector变量中 并返回
DataSet dt = new DataSet();
this.dataPoints = dt.getDataPoints();
}
public Vector getDataPoints() {
return dataPoints;
}
}
------解决方案--------------------任何一个需要序列化的成员,以及成员的成员都可以被序列化,那么你就成功了。
------解决方案--------------------Vector是实现了Serializable接口的
你的DataService也要实现Serializable接口
public class DataService implements Serializable