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 liprivate void writeObject(java.io.ObjectOutputStream stream) throws IOException<>li>><private void readObject(java.io.ObjectInputStream stream) throws IOException, ClassNotFoundException<private void readObjectNoData() throws ObjectStreamExceptionli>ANY-ACCESS-MODIFIERObject writeReplace() throws ObjectStreamException<li>ANY-ACCESS-MODIFIERObject readResolve() throws ObjectStreamException</ul>
两个与序列化相关的字段包括:
<ul><li>private static final ObjectStreamField[] serialPersistentFields</>private static final long serialVersionUID<ul>
鼓励编译器验证标记有 @Serial 批注的方法或字段是否为在有意义的上下文中声明的定义的序列化相关方法或字段之一,如果不是这种情况,则发出警告。
将此批注应用于其他字段或方法是语义错误,包括:ul>li 字段或方法不是<>Serializable适当结构声明的类或方法,而是在无效的类型中。><< 例如, enum 类型定义为具有一个 serialVersionUID 字段, 0L 因此 serialVersionUID 忽略在类型中声明的 enum 字段。 对于类型,可以忽略上面标识的五种 enum 与序列化相关的方法。
<li>在类中,即 Externalizable:<ul li> 方法声明 writeObject,readObject以及<>readObjectNoData /ul<>的serialPersistentFields<字段声明>
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) |
扩展方法
| 名称 | 说明 |
|---|---|
| GetJniTypeName(IJavaPeerable) |
获取实例 |
| JavaAs<TResult>(IJavaPeerable) |
尝试强制 |
| JavaCast<TResult>(IJavaObject) |
执行 Android 运行时检查的类型转换。 |
| JavaCast<TResult>(IJavaObject) |
指示带批注的字段或方法是引用Java对象序列化规范</引用>定义的可序列化序列化机制的<>一部分。 |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
尝试强制 |