ISerial 介面
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
表示註解欄位或方法屬於 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> 的方法宣告 writeObject,readObject以及 readObjectNoData<li>的欄位宣告serialPersistentFields<>
介面 Externalizable 擴展 Serializable時,上述三個方法和一個欄位是 <em>not</em> ,用於外部化類別。
</ul>
請注意,序列化機制會以反射方式存取其指定欄位與方法,這些欄位與方法在類別中可能會顯示為未被使用 Serializable 。
14 年加入。
本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。
屬性
| 名稱 | Description |
|---|---|
| Handle |
取得底層 Android 物件的 JNI 值。 (繼承來源 IJavaObject) |
| JniIdentityHashCode |
回傳包裹實例的 |
| JniManagedPeerState |
管理貴族的狀況。 (繼承來源 IJavaPeerable) |
| JniObjectReferenceControlBlock |
表示註解欄位或方法屬於 citeJava< 物件序列化規範>/cite< 所定義>的可序列化序列化機制。 (繼承來源 IJavaPeerable) |
| JniPeerMembers |
成員存取與召喚支援。 (繼承來源 IJavaPeerable) |
| PeerReference |
回傳JniObjectReference包裹後的 Java 物件實例。 (繼承來源 IJavaPeerable) |
方法
| 名稱 | Description |
|---|---|
| AnnotationType() |
回傳該註解的註解介面。 (繼承來源 IAnnotation) |
| Disposed() |
當實例被處理後才被召喚。 (繼承來源 IJavaPeerable) |
| DisposeUnlessReferenced() |
如果沒有未解決的參考資料,則 |
| Equals(Object) |
若指定物件代表與此標註邏輯等價,則返回真。 (繼承來源 IAnnotation) |
| Finalized() |
當實例完成後才會被通知。 (繼承來源 IJavaPeerable) |
| GetHashCode() |
回傳此註解的雜湊碼。 (繼承來源 IAnnotation) |
| SetJniIdentityHashCode(Int32) |
將回傳的值設為 |
| SetJniManagedPeerState(JniManagedPeerStates) |
表示註解欄位或方法屬於 citeJava< 物件序列化規範>/cite< 所定義>的可序列化序列化機制。 (繼承來源 IJavaPeerable) |
| SetPeerReference(JniObjectReference) |
將回傳的值設為 |
| ToString() |
回傳此註解的字串表示。 (繼承來源 IAnnotation) |
| UnregisterFromRuntime() |
取消註冊此實例,讓執行時不會在未來 Java.Interop.JniRuntime+JniValueManager.PeekValue 的呼叫中回傳該實例。 (繼承來源 IJavaPeerable) |
擴充方法
| 名稱 | Description |
|---|---|
| GetJniTypeName(IJavaPeerable) |
取得實例 |
| JavaAs<TResult>(IJavaPeerable) |
試著強制 |
| JavaCast<TResult>(IJavaObject) |
執行 Android 執行時間檢查的類型轉換。 |
| JavaCast<TResult>(IJavaObject) |
表示註解欄位或方法屬於 citeJava< 物件序列化規範>/cite< 所定義>的可序列化序列化機制。 |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
試著強制 |