小弟想实现如下功能:
有如下一个类,我在创建了这个类的对象之后,想把它直接传递给另外一个对象中调用。如果这个被传递的对象中都是基本数据类型的话,如
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;
}
}
有如下一个类,我在创建了这个类的对象之后,想把它直接传递给另外一个对象中调用。如果这个被传递的对象中都是基本数据类型的话,如
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;
}
}
healer_kx兄说的我好像有些点明白,能够说的更为具体呢,能写出简单的代码更好。
至于interpb兄说的,我也是这么认为的试过了,没有运行成功,我也不清楚问题出在哪?
http://www.newasp.net/tech/java/6018.html
正向interpb和healer_kx兄所说的那样,将里面的成员,以及成员的成员都序列化就行了。
根据LZ代码改了下,你看看
package JAVAEye;import java.io.*;
import java.util.*;
class DataSet implements Serializable
{
public Vector getDataPoints()
{
Vector temp=new Vector();
temp.add("da");
return temp;
}
}
class DataService implements Serializable{
private Vector dataPoints; //Vector变量保存数据集
public DataService() { //从DataSet对象中得到数据集,保存在Vector变量中 并返回
DataSet dt = new DataSet();
this.dataPoints = dt.getDataPoints(); }
public Vector getDataPoints() {
return dataPoints;
}
}
class Person implements Serializable{
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);
}
}class Test
implements Serializable {
public static void main(String[] args) {
//存
FileOutputStream fileStream = null;
try {
Date date=new Date();
// Person test=new Person("LXX","das",date,8);
DataService test=new DataService();
fileStream = new FileOutputStream("c:/Person.obj");
ObjectOutputStream out = new ObjectOutputStream(fileStream);
out.writeObject(test);
out.close();
}
catch (Exception ex) {
System.out.println("ex=" + ex);
}
try {
//取
// FileInputStream fileStream1 = new FileInputStream("c:/Person.obj");
// ObjectInputStream in = new ObjectInputStream(fileStream1);
// Person test1 = (Person) in.readObject();
// System.out.println("test1.toString()=" + test1.toString());
// in.close();
}
catch (Exception ex) {
System.out.println("ex=" + ex);
}
}
}