ISerial 介面
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
表示批註欄位或方法是引用 > JAVA 物件序列化規格 < /引用 > 所 < 定義的可序列化序列化機制的一部分。
[Android.Runtime.Register("java/io/Serial", "", "Java.IO.ISerialInvoker", ApiSince=34)]
public interface ISerial : IDisposable, Java.Interop.IJavaPeerable, Java.Lang.Annotation.IAnnotation
[<Android.Runtime.Register("java/io/Serial", "", "Java.IO.ISerialInvoker", ApiSince=34)>]
type ISerial = interface
interface IAnnotation
interface IJavaObject
interface IDisposable
interface IJavaPeerable
- 屬性
- 實作
備註
表示批註欄位或方法是引用 > JAVA 物件序列化規格 < /引用 > 所 < 定義的可序列化序列化機制的一部分。 此批註類型旨在允許序列化相關宣告的編譯時間檢查,類似于注釋類型所 java.lang.Override
啟用的檢查,以驗證覆寫方法。 Serializable
建議您使用 @Serial
批註來協助編譯器攔截錯誤宣告的序列化相關欄位和方法,否則可能會難以偵測的錯誤宣告。
具體而言,此類型的注釋應該套用至宣告為 的類別中 Serializable
序列化相關方法和欄位。 五個序列化相關方法如下:
<ul >< li ><private void writeObject(java.io.ObjectOutputStream stream) throws IOException
li li >>>private void readObject(java.io.ObjectInputStream stream) throws IOException, ClassNotFoundException
private void readObjectNoData() throws ObjectStreamException
<<ANY-ACCESS-MODIFIERObject writeReplace() throws ObjectStreamException
< li >ANY-ACCESS-MODIFIERObject readResolve() throws ObjectStreamException
< /ul>
兩個序列化相關欄位如下:
<ul > li li >private static final long serialVersionUID
<><private static final ObjectStreamField[] serialPersistentFields
/ul <>
建議編譯器驗證標示為 @Serial
批註的方法或欄位,是有意義的內容中宣告的其中一個已定義的序列化相關方法或欄位,如果不是這種情況,則發出警告。
將這個注釋套用至其他欄位或方法的語意錯誤,包括: < ul >< li > 欄位或方法不是適當結構宣告之 li > 欄位或方法的類別 <Serializable
,但在不正確類型中。 例如, enum
類型會定義為 具有 serialVersionUID
的 0L
,因此 serialVersionUID
會忽略在型別中宣告的 enum
欄位。 上述所識別的五個 enum
序列化相關方法同樣會忽略類型。
<li > 在類別中為 Externalizable
: < 、 readObject
和 readObjectNoData
< li 的 writeObject
ul <> li >> 方法宣告 / serialPersistentFields
< ul 的欄位宣告>
Externalizable
雖然介面延伸 Serializable
,但上述三種方法和一個欄位是 < em > not < /em > ,用於可外部化類別。
</ul>
請注意,序列化機制會以反映方式存取其指定的欄位和方法,而且這些欄位和方法可能會出現在類別中 Serializable
未使用。
已在 14 中新增。
此頁面的部分是根據 原始碼專案所建立和共用的工作進行修改,並根據中所述的詞彙使用。
屬性
Handle |
取得基礎 Android 物件的 JNI 值。 (繼承來源 IJavaObject) |
JniIdentityHashCode |
傳回包裝實例的 |
JniManagedPeerState |
受控對等的狀態。 (繼承來源 IJavaPeerable) |
JniPeerMembers |
成員存取和調用支援。 (繼承來源 IJavaPeerable) |
PeerReference |
傳 JniObjectReference 回已包裝 JAVA 物件實例的 。 (繼承來源 IJavaPeerable) |
方法
AnnotationType() |
傳回這個注釋的注釋介面。 (繼承來源 IAnnotation) |
Disposed() |
在處置實例時呼叫。 (繼承來源 IJavaPeerable) |
DisposeUnlessReferenced() |
如果沒有這個實例的未完成參考,則呼叫 |
Equals(Object) |
如果指定的物件代表邏輯上相當於這個注釋的注釋,則傳回 true。 (繼承來源 IAnnotation) |
Finalized() |
實例完成時呼叫。 (繼承來源 IJavaPeerable) |
GetHashCode() |
傳回這個注釋的雜湊碼。 (繼承來源 IAnnotation) |
SetJniIdentityHashCode(Int32) |
設定 所 |
SetJniManagedPeerState(JniManagedPeerStates) |
表示批註欄位或方法是引用 > JAVA 物件序列化規格 < /引用 > 所 < 定義的可序列化序列化機制的一部分。 (繼承來源 IJavaPeerable) |
SetPeerReference(JniObjectReference) |
設定 所 |
ToString() |
傳回這個注釋的字串表示。 (繼承來源 IAnnotation) |
UnregisterFromRuntime() |
取消註冊此實例,讓執行時間不會從未來的 Java.Interop.JniRuntime+JniValueManager.PeekValue 調用傳回它。 (繼承來源 IJavaPeerable) |
擴充方法
JavaCast<TResult>(IJavaObject) |
執行 Android 執行時間檢查的類型轉換。 |
JavaCast<TResult>(IJavaObject) |
表示批註欄位或方法是引用 > JAVA 物件序列化規格 < /引用 > 所 < 定義的可序列化序列化機制的一部分。 |
GetJniTypeName(IJavaPeerable) |
表示批註欄位或方法是引用 > JAVA 物件序列化規格 < /引用 > 所 < 定義的可序列化序列化機制的一部分。 |