Compartir a través de


ObjectOutputStream.ReplaceObject(Object) Método

Definición

Este método permitirá que las subclases de confianza de ObjectOutputStream sustituya un objeto por otro durante la serialización.

[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

Parámetros

obj
Object

objeto que se va a reemplazar

Devoluciones

el objeto alternativo que reemplazó al especificado

Atributos

Excepciones

si se produce algún error de E/S al crear el objeto de reemplazo.

Comentarios

Este método permitirá que las subclases de confianza de ObjectOutputStream sustituya un objeto por otro durante la serialización. Reemplazar objetos está deshabilitado hasta que se llama a enableReplaceObject. El método enableReplaceObject comprueba que la secuencia que solicita realizar la sustitución puede ser de confianza. La primera aparición de cada objeto escrito en el flujo de serialización se pasa a replaceObject. Las referencias posteriores al objeto se reemplazan por el objeto devuelto por la llamada original a replaceObject. Para asegurarse de que el estado privado de los objetos no se expone involuntariamente, solo las secuencias de confianza pueden usar replaceObject.

El método ObjectOutputStream.writeObject toma un parámetro de tipo Object (en lugar de tipo Serializable) para permitir casos en los que los objetos no serializables se reemplazan por los serializables.

Cuando una subclase reemplaza objetos, debe asegurarse de que se debe realizar una sustitución complementaria durante la deserialización o que el objeto sustituido sea compatible con cada campo donde se almacenará la referencia. Los objetos cuyo tipo no es una subclase del tipo del campo o elemento de matriz anulan la serialización mediante la generación de una excepción y el objeto no se almacena.

Este método se llama solo una vez cuando se encuentra por primera vez cada objeto. Todas las referencias posteriores al objeto se redirigirán al nuevo objeto. Este método debe devolver el objeto que se va a sustituir o el objeto original.

Null se puede devolver como el objeto que se va a sustituir, pero puede provocar NullReferenceException en clases que contienen referencias al objeto original, ya que pueden esperar un objeto en lugar de null.

Documentación de Java para java.io.ObjectOutputStream.replaceObject(java.lang.Object).

Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el proyecto de código abierto de Android y se usan según los términos descritos en la licencia de atribución de Creative Commons 2.5.

Se aplica a

Consulte también