IExternalizable 介面
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
序列化串流中只寫入可外部化實例的類別身份,且該類別負責儲存並還原其實例內容。
[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 |
回傳包裹實例的 |
| JniManagedPeerState |
管理貴族的狀況。 (繼承來源 IJavaPeerable) |
| JniObjectReferenceControlBlock |
序列化串流中只寫入可外部化實例的類別身份,且該類別負責儲存並還原其實例內容。 (繼承來源 IJavaPeerable) |
| JniPeerMembers |
成員存取與召喚支援。 (繼承來源 IJavaPeerable) |
| PeerReference |
回傳JniObjectReference包裹後的 Java 物件實例。 (繼承來源 IJavaPeerable) |
方法
| 名稱 | Description |
|---|---|
| Disposed() |
當實例被處理後才被召喚。 (繼承來源 IJavaPeerable) |
| DisposeUnlessReferenced() |
如果沒有未解決的參考資料,則 |
| Finalized() |
當實例完成後才會被通知。 (繼承來源 IJavaPeerable) |
| ReadExternal(IObjectInput) |
該物件實作 readExternal 方法來還原其內容,方法是呼叫 DataInput 用於原始型別,readObject 用於物件、字串與陣列。 |
| SetJniIdentityHashCode(Int32) |
將回傳的值設為 |
| SetJniManagedPeerState(JniManagedPeerStates) |
序列化串流中只寫入可外部化實例的類別身份,且該類別負責儲存並還原其實例內容。 (繼承來源 IJavaPeerable) |
| SetPeerReference(JniObjectReference) |
將回傳的值設為 |
| UnregisterFromRuntime() |
取消註冊此實例,讓執行時不會在未來 Java.Interop.JniRuntime+JniValueManager.PeekValue 的呼叫中回傳該實例。 (繼承來源 IJavaPeerable) |
| WriteExternal(IObjectOutput) |
物件實作 writeExternal 方法來儲存其內容,方法是呼叫 DataOutput 的方法取得其原始值,或呼叫 ObjectOutput 的 writeObject 方法(物件、字串與陣列)。 |
擴充方法
| 名稱 | Description |
|---|---|
| GetJniTypeName(IJavaPeerable) |
取得實例 |
| JavaAs<TResult>(IJavaPeerable) |
試著強制 |
| JavaCast<TResult>(IJavaObject) |
執行 Android 執行時檢查型別轉換。 |
| JavaCast<TResult>(IJavaObject) |
序列化串流中只寫入可外部化實例的類別身份,且該類別負責儲存並還原其實例內容。 |
| ReadExternalAsync(IExternalizable, IObjectInput) |
序列化串流中只寫入可外部化實例的類別身份,且該類別負責儲存並還原其實例內容。 |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
試著強制 |
| WriteExternalAsync(IExternalizable, IObjectOutput) |
序列化串流中只寫入可外部化實例的類別身份,且該類別負責儲存並還原其實例內容。 |