我有一个名为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时,所有在开始时实例化的东西(如SeatingChart sc对象)是否都会获得文件中保存的任何内容,只要这些对象都实现了Serializable接口?如果是,那么为什么我的代码不起作用?我做错了什么?
private static final long serialVersionUID
字段。 - trutheality