读书人

怎么实现对象的深度序列化

发布时间: 2012-01-13 22:43:29 作者: rapoo

如何实现对象的深度序列化
小弟想实现如下功能:
有如下一个类,我在创建了这个类的对象之后,想把它直接传递给另外一个对象中调用。

如果这个被传递的对象中都是基本数据类型的话,如
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

读书人网 >J2SE开发

热点推荐