[英]How to make a java class serializable that extends a non serializable
MyClass1 extends MyClass2 implements Serializable
我正在尝试通过使用HashMap上的android应用程序中使用saveOnInstanceState
savedInstanceState.getSerializable()
我已经使用了其他使用自定义类的哈希表来做到这一点,但是通过将这些类设置为可序列化,但是即使我将其设置为可序列化之后,由于MyClass2不可序列化,我似乎还是会出现错误。 MyClass2是第三方库,因此我无法对其进行修改并使其可序列化,我可以做什么?
谢谢!
正如Jan的回答所述,您通常无法执行此操作。 在某些情况下,有一些解决方法可以使它实现,但是即使工作了,它们也会变得有些脆弱。 为了有这个机会,您需要满足以下条件:
serialPersistentFields
方法或精心构造的一对writeObject
/ readObject
实现,以在序列化和反序列化期间保存/读取超类的数据。 这必然需要了解和访问前面的项目符号中描述的超类结构。 当然,在完成所有这些操作后,您将使用一些有关超类的知识,这意味着,如果超类的实现发生变化,则可能会以难以发现的方式中断。
不幸的是你不能。 如果可以做到这一点,那将是一个安全漏洞,因为即使不应该对类进行序列化,您也可以对其进行序列化。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.