gpt4 book ai didi

java.io.InvalidClassException : serialization from string to object fail java

转载 作者:太空宇宙 更新时间:2023-11-04 06:55:53 24 4
gpt4 key购买 nike

我有一个名为 Doodle 的对象,我将它序列化为字符串,这样就可以了。当我尝试反序列化对象时出现问题,错误是这样的:java.io.InvalidClassException:java.util.ArrayList;本地类不兼容:流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;


}

我使用相同的方法(但使用不同的变量)来序列化另一种类型的对象,并且使用该方法效果很好。我不明白问题出在哪里!

最佳答案

I serialize it into a String and it's ok

不,这样不行。 String 不是二进制数据的容器。字节数组和 String 之间的往返不保证会丢失。不要这样做。使用byte[],或者至少对其进行 Base64 编码。

关于java.io.InvalidClassException : serialization from string to object fail java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22750450/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com