簡體   English   中英

有關可外部化和可序列化的問題

[英]Questions regarding Externalizable and Serializable

我們可以使用readResolve和writeReplace方法為Externalizable和Serializable實例指定替換對象...

只想知道幾件事:

1)可以將readObject(ObjectInputStream is)和writeObject(ObjectOutputStream os)方法與readResolve()和writeReplace()一起用於可Serilaizable類嗎? 是否有可能替換對象然后使用readObject和writeObject對字節流執行修改操作2)Exteralizable的writeExternal應該與超類型顯式協調以保存其狀態。只想知道Serializable超類也是如此(但是而不是Externalizable)或將實例寫入流時會自動保存Serilizable類狀態?

如果存在可序列化類的多個特殊方法,則方法的執行順序

這些方法按以下順序執行:

發生序列化時,方法的執行順序如下:

writeReplace
writeObject
readObject
readResolve
validateObject

對第1點的回答

因此,問題1的答案是肯定的

對第2點的回答

從JavaDoc Serializable接口Javadoc中 ,用於特殊方法,例如

 private void writeObject(java.io.ObjectOutputStream out)
     throws IOException

The writeObject method does not need to concern itself with the state belonging to its superclasses or subclasses. State is saved by writing the individual fields to the ObjectOutputStream using the writeObject method or by using the methods for primitive data types supported by DataOutput.

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM