ObjectOutputStream.ReplaceObject(Object) 方法

定义

此方法允许 ObjectOutputStream 的受信任子类在序列化期间将一个对象替换为另一个对象。

[Android.Runtime.Register("replaceObject", "(Ljava/lang/Object;)Ljava/lang/Object;", "GetReplaceObject_Ljava_lang_Object_Handler")]
protected virtual Java.Lang.Object? ReplaceObject (Java.Lang.Object? obj);
[<Android.Runtime.Register("replaceObject", "(Ljava/lang/Object;)Ljava/lang/Object;", "GetReplaceObject_Ljava_lang_Object_Handler")>]
abstract member ReplaceObject : Java.Lang.Object -> Java.Lang.Object
override this.ReplaceObject : Java.Lang.Object -> Java.Lang.Object

参数

obj
Object

要替换的对象

返回

替换指定对象的备用对象

属性

例外

如果在创建替换对象时发生任何 I/O 错误。

注解

此方法允许 ObjectOutputStream 的受信任子类在序列化期间将一个对象替换为另一个对象。 在调用 enableReplaceObject 之前,将禁用替换对象。 enableReplaceObject 方法检查请求进行替换的流是否可以受信任。 将传入序列化流的每个对象的第一个匹配项传递给 replaceObject。 对对象的后续引用由原始调用 replaceObject 返回的对象替换。 为了确保对象的私有状态不会无意中公开,只有受信任的流可以使用 replaceObject。

ObjectOutputStream.writeObject 方法采用 Object 类型的参数(而不是类型 Serializable),以允许将不可序列化的对象替换为可序列化对象的情况。

当子类替换对象时,它必须确保在反序列化期间必须进行补充替换,或者替换的对象与将存储引用的每个字段兼容。 其类型不是字段或数组元素类型的子类的对象通过引发异常而中止序列化,并且对象不存储。

首次遇到每个对象时,仅调用此方法一次。 对对象的所有后续引用都将重定向到新对象。 此方法应返回要替换的对象或原始对象。

Null 可以作为要替换的对象返回,但在包含对原始对象的引用的类中可能会导致 NullReferenceException,因为它们可能期望对象而不是 null。

适用于 . 的 java.io.ObjectOutputStream.replaceObject(java.lang.Object)Java 文档

本页的某些部分是根据 Android 开放源代码项目创建和共享的工作进行的修改,并根据 Creative Commons 2.5 属性许可证中所述的术语使用。

适用于

另请参阅