我有一个桌面应用程序(不是 Android),它允许我实例化一个类,改变它的内部状态,并将其序列化为一个文件(使用标准的 Java 序列化机制)。然后我将此文件复制到我单独的 Android 应用程序的资源中。我希望将此文件反序列化为与我的 Android 应用程序中相同的类结构。
但是,桌面类和 Android 类之间的数据成员略有不同,例如,我不能在 Android 中使用 BufferedImage,而必须使用 Bitmap。
显然系统不会喜欢这样,所以因为它对我没有任何影响,所以我将这些特定的数据成员设置为瞬态的。在桌面上再次序列化后,该文件仍然无法在 Android 上反序列化。执行时出现 ClassNotFoundException 错误
myclass = (MyClass)ois.readObject();
有谁知道我是否可以通过编写自己的序列化函数来使用 Externalizable 来实现我的目标,还是我必须编写完全独立的序列化(没有 Serializable/Externalizable)