鴻蒙OS Externalizable

2022-10-17 11:27 更新

Externalizable

public interface Externalizable
extends Serializable

只有 Externalizable 實例的類的標(biāo)識被寫入序列化流中,并且類有責(zé)任保存和恢復(fù)其實例的內(nèi)容。 Externalizable 接口的 writeExternal 和 readExternal 方法由一個類實現(xiàn),以使該類可以完全控制對象及其超類型的流的格式和內(nèi)容。這些方法必須顯式地與超類型協(xié)調(diào)以保存其狀態(tài)。這些方法取代了 writeObject 和 readObject 方法的自定義實現(xiàn)。對象序列化使用 Serializable 和 Externalizable 接口。對象持久性機制也可以使用它們。每個要存儲的對象都針對 Externalizable 接口進行了測試。如果對象支持 Externalizable,則調(diào)用 writeExternal 方法。如果對象不支持 Externalizable 并且實現(xiàn)了 Serializable,則使用 ObjectOutputStream 保存對象。重構(gòu) Externalizable 對象時,會使用公共無參數(shù)構(gòu)造函數(shù)創(chuàng)建實例,然后調(diào)用 readExternal 方法??尚蛄谢瘜ο笫峭ㄟ^從 ObjectInputStream 中讀取來恢復(fù)的。 Externalizable 實例可以通過 Serializable 接口中記錄的 writeReplace 和 readResolve 方法指定替換對象。

Since:

JDK1.1

方法總結(jié)

修飾符和類型 方法 描述
void readExternal(ObjectInput in) 該對象實現(xiàn)了 readExternal 方法來恢復(fù)其內(nèi)容,方法是調(diào)用基本類型的 DataInput 方法和對象、字符串和數(shù)組的 readObject 方法。
void writeExternal(ObjectOutput out) 對象實現(xiàn) writeExternal 方法以保存其內(nèi)容,方法是調(diào)用 DataOutput 的方法獲取其原始值,或者調(diào)用 ObjectOutput 的 writeObject 方法獲取對象、字符串和數(shù)組。

方法詳情

writeExternal

void writeExternal(ObjectOutput out) throws IOException

對象實現(xiàn) writeExternal 方法以保存其內(nèi)容,方法是調(diào)用 DataOutput 的方法獲取其原始值,或者調(diào)用 ObjectOutput 的 writeObject 方法獲取對象、字符串和數(shù)組。

參數(shù):

參數(shù)名稱 參數(shù)描述
out 將對象寫入的流

Throws:

Throw名稱 Throw描述
IOException 包括可能發(fā)生的任何 I/O 異常

readExternal

void readExternal(ObjectInput in) throws ClassNotFoundException, IOException

該對象實現(xiàn)了 readExternal 方法來恢復(fù)其內(nèi)容,方法是調(diào)用基本類型的 DataInput 方法和對象、字符串和數(shù)組的 readObject 方法。 readExternal 方法必須以與 writeExternal 寫入的相同順序和相同類型讀取值。

參數(shù):

參數(shù)名稱 參數(shù)描述
in 要從中讀取數(shù)據(jù)以恢復(fù)對象的流

Throws:

Throw名稱 Throw描述
IOException 如果發(fā)生 I/O 錯誤
ClassNotFoundException 如果找不到正在恢復(fù)的對象的類。
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號