我有一个名为 Doodle 的对象,我将它序列化为一个字符串,就可以了。当我尝试反序列化对象时出现问题,错误是:java.io.InvalidClassException: java.util.ArrayList; 本地类不兼容:stream classdesc serialVersionUID = 8664875232659988799,本地类serialVersionUID = 8683452581122892189
序列化和反序列化的方法如下:
public static String serDoodle(Doodle dood){
String serializzato = null;
try {
ByteArrayOutputStream bo = new ByteArrayOutputStream();
ObjectOutputStream so = new ObjectOutputStream(bo);
so.writeObject(dood);
so.flush();
serializzato = bo.toString();
so.close();
bo.close();
} catch (Exception e) {
System.out.println(e);
}
return serializzato;
}
public static Doodle deserDoodle(String deserializza){
Doodle dod = new Doodle();
try {
byte[] b = deserializza.getBytes();
ByteArrayInputStream bi = new ByteArrayInputStream(b);
ObjectInputStream si = new ObjectInputStream(bi);
dod=(Doodle) si.readObject();
si.readObject().getClass();
si.close();
bi.close();
} catch (Exception e) {
System.out.println("deserDoodle "+e);
}
return dod;
}
我使用相同的方法(但使用不同的变量)来序列化另一种类型的对象,并且使用该方法可以很好地工作。我不明白哪里有问题!