Compartilhar via


ObjectOutputStream.ReplaceObject(Object) Método

Definição

Esse método permitirá que subclasses confiáveis de ObjectOutputStream substituam um objeto por outro durante a serialização.

[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

o objeto a ser substituído

Retornos

O objeto alternativo que substituiu o especificado

Atributos

Exceções

se ocorrer algum erro de E/S ao criar o objeto de substituição.

Comentários

Esse método permitirá que subclasses confiáveis de ObjectOutputStream substituam um objeto por outro durante a serialização. A substituição de objetos é desabilitada até que enableReplaceObject seja chamado. O método enableReplaceObject verifica se o fluxo que solicita a substituição pode ser confiável. A primeira ocorrência de cada objeto gravado no fluxo de serialização é passada para replaceObject. As referências subsequentes ao objeto são substituídas pelo objeto retornado pela chamada original para replaceObject. Para garantir que o estado privado dos objetos não seja exposto involuntariamente, somente fluxos confiáveis podem usar replaceObject.

O método ObjectOutputStream.writeObject usa um parâmetro do tipo Object (em oposição ao tipo Serializable) para permitir casos em que objetos não serializáveis são substituídos por objetos serializáveis.

Quando uma subclasse está substituindo objetos, ela deve garantir que uma substituição complementar deve ser feita durante a desserialização ou que o objeto substituído é compatível com todos os campos onde a referência será armazenada. Objetos cujo tipo não é uma subclasse do tipo do campo ou elemento de matriz abortam a serialização gerando uma exceção e o objeto não é armazenado.

Esse método é chamado apenas uma vez quando cada objeto é encontrado pela primeira vez. Todas as referências subsequentes ao objeto serão redirecionadas para o novo objeto. Esse método deve retornar o objeto a ser substituído ou o objeto original.

Null pode ser retornado como o objeto a ser substituído, mas pode causar NullReferenceException em classes que contêm referências ao objeto original, pois eles podem estar esperando um objeto em vez de null.

Documentação Java para java.io.ObjectOutputStream.replaceObject(java.lang.Object).

Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Android Open Source Project e usado de acordo com os termos descritos na Creative Commons 2.5 Attribution License.

Aplica-se a

Confira também