日期:2014-05-20  浏览次数:20707 次

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

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