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><private void readObject(java.io.ObjectInputStream stream) throws IOException, ClassNotFoundException
li li<>private void readObjectNoData() throws ObjectStreamException
li> ANY-ACCESS-MODIFIER Object writeReplace() throws ObjectStreamException
<li> ANY-ACCESS-MODIFIERObject readResolve() throws ObjectStreamException
</ul>
两个与序列化相关的字段是:
<ul><li>private static final ObjectStreamField[] serialPersistentFields
<li>private static final long serialVersionUID
</ul>
建议编译器验证标记有 @Serial
批注的方法或字段是否是定义的序列化相关方法之一,或者在有意义的上下文中声明的字段,如果不是这样,则发出警告。
将此注释应用于其他字段或方法是语义错误,包括: <类中的 ul><li>字段或方法,该类不是 Serializable
<li>字段或正确结构声明的方法,而是在无效的类型中。 例如,enum
将类型定义为具有 的 0L
,serialVersionUID
因此serialVersionUID
忽略类型中enum
声明的字段。 同样,对于某个类型,将忽略上面标识的五个 enum
与序列化相关的方法。
<类中的 li 为 :<、 的 readObject
writeObject
ul><li> 方法声明和 readObjectNoData
</>ul 的<serialPersistentFields
字段声明>Externalizable
>
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 对象序列化规范</引用定义的<可序列化机制的一>部分。 |