語言

ISerial 介面

定義

表示註解欄位或方法屬於 citeJava< 物件序列化規範>/cite< 所定義>的可序列化序列化機制。

[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
屬性
實作

備註

表示註解欄位或方法屬於 citeJava< 物件序列化規範>/cite< 所定義>的可序列化序列化機制。 此註解類型旨在允許編譯時檢查序列化相關宣告,類似於註 java.lang.Override 解類型用來驗證方法覆寫的檢查。 Serializable 鼓勵類別使用 @Serial 註解,幫助編譯器捕捉與序列化相關的錯誤宣告欄位與方法,這些錯誤宣告可能難以被偵測。

具體而言,此類註解應應用於序列化相關方法與類別中宣告為 Serializable的欄位。 五種與序列化相關的方法包括:

<ul><liprivate void writeObject(java.io.ObjectOutputStream stream) throws IOException<>li>private void readObject(java.io.ObjectInputStream stream) throws IOException, ClassNotFoundException<>><private void readObjectNoData() throws ObjectStreamExceptionANY-ACCESS-MODIFIER Object writeReplace() throws ObjectStreamException<liANY-ACCESS-MODIFIER>/ul Object readResolve() throws ObjectStreamException<>

這兩個與序列化相關的欄位為:

<烏爾><里>private static final ObjectStreamField[] serialPersistentFields<里>private static final long serialVersionUID</烏爾>

鼓勵編譯器驗證標註 @Serial 的方法或欄位是否為在有意義上下文中宣告的定義序列化相關方法或欄位,若非此情況則發出警告。

將此註解套用於其他欄位或方法,包括:<><ul li>欄位或方法,且類別中並非Serializable<結構宣告正確 li>欄位或方法,但類型中它們無效,則是語意錯誤。 例如, enum 型別定義為 a serialVersionUID of 0L ,因此 serialVersionUID 在型 enum 別中宣告的欄位會被忽略。 上述五種與序列化相關的方法同樣被忽略於型 enum 別中。

<LI>在一個類別中Externalizable,該類別為 :<ul><li> 的方法宣告 writeObjectreadObject以及 readObjectNoData<li>的欄位宣告serialPersistentFields<>

介面 Externalizable 擴展 Serializable時,上述三個方法和一個欄位是 <em>not</em> ,用於外部化類別。

</ul>

請注意,序列化機制會以反射方式存取其指定欄位與方法,這些欄位與方法在類別中可能會顯示為未被使用 Serializable

14 年加入。

Java 文件 java.io.Serial

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

屬性

名稱 Description
Handle

取得底層 Android 物件的 JNI 值。

(繼承來源 IJavaObject)
JniIdentityHashCode

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

(繼承來源 IJavaPeerable)
JniManagedPeerState

管理貴族的狀況。

(繼承來源 IJavaPeerable)
JniObjectReferenceControlBlock

表示註解欄位或方法屬於 citeJava< 物件序列化規範>/cite< 所定義>的可序列化序列化機制。

(繼承來源 IJavaPeerable)
JniPeerMembers

成員存取與召喚支援。

(繼承來源 IJavaPeerable)
PeerReference

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

(繼承來源 IJavaPeerable)

方法

名稱 Description
AnnotationType()

回傳該註解的註解介面。

(繼承來源 IAnnotation)
Disposed()

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

(繼承來源 IJavaPeerable)
DisposeUnlessReferenced()

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

(繼承來源 IJavaPeerable)
Equals(Object)

若指定物件代表與此標註邏輯等價,則返回真。

(繼承來源 IAnnotation)
Finalized()

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

(繼承來源 IJavaPeerable)
GetHashCode()

回傳此註解的雜湊碼。

(繼承來源 IAnnotation)
SetJniIdentityHashCode(Int32)

將回傳的值設為 JniIdentityHashCode

(繼承來源 IJavaPeerable)
SetJniManagedPeerState(JniManagedPeerStates)

表示註解欄位或方法屬於 citeJava< 物件序列化規範>/cite< 所定義>的可序列化序列化機制。

(繼承來源 IJavaPeerable)
SetPeerReference(JniObjectReference)

將回傳的值設為 PeerReference

(繼承來源 IJavaPeerable)
ToString()

回傳此註解的字串表示。

(繼承來源 IAnnotation)
UnregisterFromRuntime()

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

(繼承來源 IJavaPeerable)

擴充方法

名稱 Description
GetJniTypeName(IJavaPeerable)

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

JavaAs<TResult>(IJavaPeerable)

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

JavaCast<TResult>(IJavaObject)

執行 Android 執行時間檢查的類型轉換。

JavaCast<TResult>(IJavaObject)

表示註解欄位或方法屬於 citeJava< 物件序列化規範>/cite< 所定義>的可序列化序列化機制。

TryJavaCast<TResult>(IJavaPeerable, TResult)

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

適用於