語言

IExternalizable 介面

定義

序列化串流中只寫入可外部化實例的類別身份,且該類別負責儲存並還原其實例內容。

[Android.Runtime.Register("java/io/Externalizable", "", "Java.IO.IExternalizableInvoker")]
public interface IExternalizable : IDisposable, Java.Interop.IJavaPeerable, Java.IO.ISerializable
[<Android.Runtime.Register("java/io/Externalizable", "", "Java.IO.IExternalizableInvoker")>]
type IExternalizable = interface
    interface ISerializable
    interface IJavaObject
    interface IDisposable
    interface IJavaPeerable
屬性
實作

備註

序列化串流中只寫入可外部化實例的類別身份,且該類別負責儲存並還原其實例內容。

外部化介面的 writeExternal 與 readExternal 方法由類別實作,讓類別完全控制物件及其超型態串流的格式與內容。 這些方法必須明確與超型態協調以保存其狀態。 這些方法取代了客製化的 writeObject 與 readObject 方法實作。<BR>

物件序列化使用可序列化與外部化介面。 物件持久化機制也能使用它們。 每個要儲存的物件都會測試可外部化介面。 若物件支援 Externalizable,則呼叫 writeExternal 方法。 如果物件不支援 Externalizable,且實作了 Serializable,則會使用 ObjectOutputStream 來儲存該物件。 <br> 當可外部化物件被重建時,會使用公開的 no-arg 建構子建立實例,然後呼叫 readExternal 方法。 可序列化的物件是從 ObjectInputStream 讀取還原的。<BR>

可外部化實例可透過序列化介面中所記載的 writeReplace 與 readResolve 方法指定替換物件。<BR>

在 1.1 版本中加入。

Java 文件 java.io.Externalizable

本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。

屬性

名稱 Description
Handle

取得底層 Android 物件的 JNI 值。

(繼承來源 IJavaObject)
JniIdentityHashCode

回傳包裹實例的 java.lang.System.identityHashCode() 值。

(繼承來源 IJavaPeerable)
JniManagedPeerState

管理貴族的狀況。

(繼承來源 IJavaPeerable)
JniObjectReferenceControlBlock

序列化串流中只寫入可外部化實例的類別身份,且該類別負責儲存並還原其實例內容。

(繼承來源 IJavaPeerable)
JniPeerMembers

成員存取與召喚支援。

(繼承來源 IJavaPeerable)
PeerReference

回傳JniObjectReference包裹後的 Java 物件實例。

(繼承來源 IJavaPeerable)

方法

名稱 Description
Disposed()

當實例被處理後才被召喚。

(繼承來源 IJavaPeerable)
DisposeUnlessReferenced()

如果沒有未解決的參考資料,則 Dispose()呼叫;否則,則不做任何事。

(繼承來源 IJavaPeerable)
Finalized()

當實例完成後才會被通知。

(繼承來源 IJavaPeerable)
ReadExternal(IObjectInput)

該物件實作 readExternal 方法來還原其內容,方法是呼叫 DataInput 用於原始型別,readObject 用於物件、字串與陣列。

SetJniIdentityHashCode(Int32)

將回傳的值設為 JniIdentityHashCode

(繼承來源 IJavaPeerable)
SetJniManagedPeerState(JniManagedPeerStates)

序列化串流中只寫入可外部化實例的類別身份,且該類別負責儲存並還原其實例內容。

(繼承來源 IJavaPeerable)
SetPeerReference(JniObjectReference)

將回傳的值設為 PeerReference

(繼承來源 IJavaPeerable)
UnregisterFromRuntime()

取消註冊此實例,讓執行時不會在未來 Java.Interop.JniRuntime+JniValueManager.PeekValue 的呼叫中回傳該實例。

(繼承來源 IJavaPeerable)
WriteExternal(IObjectOutput)

物件實作 writeExternal 方法來儲存其內容,方法是呼叫 DataOutput 的方法取得其原始值,或呼叫 ObjectOutput 的 writeObject 方法(物件、字串與陣列)。

擴充方法

名稱 Description
GetJniTypeName(IJavaPeerable)

取得實例 self類型的 JNI 名稱。

JavaAs<TResult>(IJavaPeerable)

試著強制self輸入 TResult,檢查 強制在 Java 端是否有效。

JavaCast<TResult>(IJavaObject)

執行 Android 執行時檢查型別轉換。

JavaCast<TResult>(IJavaObject)

序列化串流中只寫入可外部化實例的類別身份,且該類別負責儲存並還原其實例內容。

ReadExternalAsync(IExternalizable, IObjectInput)

序列化串流中只寫入可外部化實例的類別身份,且該類別負責儲存並還原其實例內容。

TryJavaCast<TResult>(IJavaPeerable, TResult)

試著強制self輸入 TResult,檢查 強制在 Java 端是否有效。

WriteExternalAsync(IExternalizable, IObjectOutput)

序列化串流中只寫入可外部化實例的類別身份,且該類別負責儲存並還原其實例內容。

適用於