我有一个类叫做Flight Flight类在实例化时,实例化另一个名为SeatingChart的类,而SeatingChart也实例化另一个类等等等等。如何反序列化对象?
public class Flight implements Serializable
{
SeatingChart sc = new SeatingChart(); seating
//WaitingList wl = new WaitingList();
}
public class SeatingChart extends ListAndChart implements PassengerList, Serializable
{
public static final int NOT_FOUND = 42;
Passenger [] pass = new Passenger[40];
}
public class Passenger implements Serializable
{
private String firstName, lastName, fullName;
public String getName()
{
fullName = firstName + " " + lastName;
return fullName;
}
public void setFirstName(String firstName)
{
this.firstName = firstName;
}
public void setLastName(String lastName)
{
this.lastName = lastName;
}
}
我在另一个类的另一种方法是反序列化保存在磁盘中的对象
public void actionPerformed(ActionEvent evt)
{
Serialization.deserialize(sw101); <--- sw101 is a Flight object
.
.
.
}
//code for deserialization
public static void deserialize(Flight sw101)
{
String filename = "serialized.ser";
sw101 = null;
FileInputStream fis = null;
ObjectInputStream in = null;
try
{
fis = new FileInputStream(filename);
in = new ObjectInputStream(fis);
sw101 = (Flight)in.readObject();
System.out.println("sw101" + sw101.toString());
in.close();
}
catch(IOException ex)
{
ex.printStackTrace();
}
catch(ClassNotFoundException ex)
{
ex.printStackTrace();
}
}
我的问题是,当我分配SW101序列化的对象,一切SW101在开始实例像SeatingChart SC如果这些对象都实现了Serializable接口,那么对象也可以获取文件中保存的任何内容,而无需执行任何操作。如果是这样,为什么我的代码不工作?我究竟做错了什么?
定义... “不工作”。它做什么呢? – trutheality 2011-06-16 23:49:07
另外,最好有一个“私有静态最终的long serialVersionUID”字段。 – trutheality 2011-06-16 23:51:51
它不会返回序列化对象。当我尝试打印乘客的名字时,它不起作用。 – dave 2011-06-16 23:51:55