我使用 android.os.MemoryFile 类来序列化和反序列化它的对象。我所做的是,我创建了自定义类名,如 MyMemoryFile ,并使用MemoryFile类扩展它并实现Serializable接口。我重写了MemoryFile类函数,如ReadBytes / WriteBytes。然后我将所有对象转换为字节数组并存储在字节ArrayList中。然后我将所有字节ArrayList项转换为String以存储在Mysql数据库中,反之亦然。我已经这样做但是当我反序列化对象时会导致异常
java.io.InvalidClassException: android.os.MemoryFile; IllegalAccessException
不幸的是,in.readObject()会抛出带有上述消息的InvalidClassException。
有谁知道造成这种情况的原因以及如何解决?
答案 0 :(得分:1)
InvalidClassException意味着在您将这些类的对象存储在数据库中时,类定义(就成员而言,可能已添加了新成员)存在差异,当您检索它们并尝试反序列化时会导致此问题。在可序列化的类中定义“serialVersionUID”,问题就会消失。