ObjectInputStream.ReadUnshared Método

Definición

Lee un objeto "no compartido" de ObjectInputStream.

[Android.Runtime.Register("readUnshared", "()Ljava/lang/Object;", "GetReadUnsharedHandler")]
public virtual Java.Lang.Object? ReadUnshared();
[<Android.Runtime.Register("readUnshared", "()Ljava/lang/Object;", "GetReadUnsharedHandler")>]
abstract member ReadUnshared : unit -> Java.Lang.Object
override this.ReadUnshared : unit -> Java.Lang.Object

Devoluciones

referencia al objeto deserializado

Atributos

Excepciones

si no se encuentra la clase de uno de los objetos del gráfico de objetos.

si se produce un error al leer desde la secuencia de origen.

Comentarios

Lee un objeto "no compartido" de ObjectInputStream. Este método es idéntico a readObject, salvo que impide que las llamadas posteriores a readObject y readUnshared devuelvan referencias adicionales a la instancia deserializada obtenida a través de esta llamada. Específicamente: <ul><li>Si se llama a readUnshared para deserializar una referencia inversa (la representación de secuencia de un objeto que se ha escrito anteriormente en la secuencia), se producirá una excepción ObjectStreamException.

<li>Si readUnshared devuelve correctamente, cualquier intento posterior de deserializar las referencias inversas al identificador de secuencia deserializado por readUnshared hará que se produzca una excepción ObjectStreamException. </ul> Deserializar un objeto a través de readUnshared invalida el identificador de secuencia asociado al objeto devuelto. Tenga en cuenta que esto en sí mismo no siempre garantiza que la referencia devuelta por readUnshared sea única; El objeto deserializado puede definir un método readResolve que devuelve un objeto visible para otras partes, o readUnshared puede devolver un objeto Class o una constante de enumeración que se puede obtener en otra parte de la secuencia o a través de medios externos. Si el objeto deserializado define un método readResolve y la invocación de ese método devuelve una matriz, readUnshared devuelve un clon superficial de esa matriz; esto garantiza que el objeto de matriz devuelto es único y no se puede obtener una segunda vez a partir de una invocación de readObject o readUnshared en ObjectInputStream, incluso si se ha manipulado el flujo de datos subyacente.

Las subclases ObjectInputStream que invalidan este método solo se pueden construir en contextos de seguridad que poseen la serializablePermission "enableSubclassImplementation"; cualquier intento de crear una instancia de dicha subclase sin este permiso hará que se produzca una excepción SecurityException.

Agregado en la versión 1.4.

Java documentación para java.io.ObjectInputStream.readUnshared().

Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el Android y se usan según los términos descritos en creative Creative Commons 2.5 Attribution License.

Se aplica a

Consulte también