Share via


ISerial 接口

定义

指示带批注的字段或方法是引用>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, ClassNotFoundExceptionli li<>private void readObjectNoData() throws ObjectStreamExceptionli> 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将类型定义为具有 的 0LserialVersionUID因此serialVersionUID忽略类型中enum声明的字段。 同样,对于某个类型,将忽略上面标识的五个 enum 与序列化相关的方法。

<类中的 li 为 :<、 的 readObjectwriteObjectul><li> 方法声明和 readObjectNoData</>ul 的<serialPersistentFields字段声明>Externalizable>

Externalizable虽然 接口扩展 Serializable,但上面的三个方法和一个字段是<用于可外部化类的 em>not</em>。

</ul>

请注意,序列化机制以反射方式访问其指定的字段和方法,这些字段和方法可能会在类中 Serializable 显示为未使用。

在 14 中添加。

java.io.SerialJava 文档。

此页面的某些部分是基于 创建和共享的工作进行的修改,并根据 署名许可中所述的条款使用。

属性

Handle

获取基础 Android 对象的 JNI 值。

(继承自 IJavaObject)
JniIdentityHashCode

返回包装实例的 的值 java.lang.System.identityHashCode()

(继承自 IJavaPeerable)
JniManagedPeerState

托管对等方的状态。

(继承自 IJavaPeerable)
JniPeerMembers

成员访问和调用支持。

(继承自 IJavaPeerable)
PeerReference

返回 JniObjectReference 包装的 Java 对象实例的 。

(继承自 IJavaPeerable)

方法

AnnotationType()

返回此批注的批注接口。

(继承自 IAnnotation)
Disposed()

在释放实例时调用。

(继承自 IJavaPeerable)
DisposeUnlessReferenced()

如果没有对此实例的未完成引用,则调用 Dispose();否则不执行任何操作。

(继承自 IJavaPeerable)
Equals(Object)

如果指定的对象表示在逻辑上等效于此批注,则返回 true。

(继承自 IAnnotation)
Finalized()

在实例完成时调用。

(继承自 IJavaPeerable)
GetHashCode()

返回此批注的哈希代码。

(继承自 IAnnotation)
SetJniIdentityHashCode(Int32)

设置 返回 JniIdentityHashCode的值。

(继承自 IJavaPeerable)
SetJniManagedPeerState(JniManagedPeerStates)

指示带批注的字段或方法是引用>Java 对象序列化规范</引用定义的<可序列化机制的一>部分。

(继承自 IJavaPeerable)
SetPeerReference(JniObjectReference)

设置 返回 PeerReference的值。

(继承自 IJavaPeerable)
ToString()

返回此批注的字符串表示形式。

(继承自 IAnnotation)
UnregisterFromRuntime()

取消注册此实例,以便运行时不会从将来 Java.Interop.JniRuntime+JniValueManager.PeekValue 的调用中返回它。

(继承自 IJavaPeerable)

扩展方法

JavaCast<TResult>(IJavaObject)

执行 Android 运行时检查的类型转换。

JavaCast<TResult>(IJavaObject)

指示带批注的字段或方法是引用>Java 对象序列化规范</引用定义的<可序列化机制的一>部分。

GetJniTypeName(IJavaPeerable)

指示带批注的字段或方法是引用>Java 对象序列化规范</引用定义的<可序列化机制的一>部分。

适用于