我有一个可序列化的类。
public class Customer implements Externalizable {
private static final long serialVersionUID = 1L;
private String id;
private String name;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName( String name) {
this.name = name;
}
@Override
public String toString() {
return "id : "+id+" name : "+name ;
}
@Override
public void readExternal(ObjectInput in) throws IOException,
ClassNotFoundException {
this.setId((String) in.readObject());
this.setName((String) in.readObject());
}
@Override
public void writeExternal(ObjectOutput out) throws IOException {
System.out.println("Reached here");
out.writeObject(id);
out.writeObject(name);
}
}
我已经将类的对象序列化到一个文件中。现在我已将名称的数据类型从 String 更改为 List。因此,在反序列化时,我得到了一个类转换异常,因为它无法从 String 转换为 List。每次对类进行一些更改时,我都在考虑更改类的版本,以便在 readExternal 中我可以明确地处理它。然而,虽然这个想法可能适用于简单的类,但在较大的复杂类的情况下会失败。任何人都可以请提供一个更简单的解决方案。
谢谢