[英]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.