Condividi tramite


ObjectOutputStream.ReplaceObject(Object) Metodo

Definizione

Questo metodo consentirà alle sottoclassi attendibili di ObjectOutputStream di sostituire un oggetto per un altro durante la serializzazione.

[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

Parametri

obj
Object

oggetto da sostituire

Restituisce

oggetto alternativo che ha sostituito quello specificato

Attributi

Eccezioni

se si verifica un errore di I/O durante la creazione dell'oggetto sostitutivo.

Commenti

Questo metodo consentirà alle sottoclassi attendibili di ObjectOutputStream di sostituire un oggetto per un altro durante la serializzazione. La sostituzione degli oggetti è disabilitata fino a quando non viene chiamato enableReplaceObject. Il metodo enableReplaceObject verifica che il flusso che richiede di eseguire la sostituzione possa essere considerato attendibile. La prima occorrenza di ogni oggetto scritto nel flusso di serializzazione viene passata a replaceObject. I riferimenti successivi all'oggetto vengono sostituiti dall'oggetto restituito dalla chiamata originale a replaceObject. Per garantire che lo stato privato degli oggetti non sia involontariamente esposto, solo i flussi attendibili possono usare replaceObject.

Il metodo ObjectOutputStream.writeObject accetta un parametro di tipo Object (anziché di tipo Serializable) per consentire i casi in cui gli oggetti non serializzabili vengono sostituiti da quelli serializzabili.

Quando una sottoclasse sostituisce gli oggetti, deve assicurarsi che sia necessario eseguire una sostituzione complementare durante la deserializzazione o che l'oggetto sostituito sia compatibile con ogni campo in cui verrà archiviato il riferimento. Oggetti il cui tipo non è una sottoclasse del tipo del campo o dell'elemento matrice interrompe la serializzazione generando un'eccezione e l'oggetto non viene archiviato.

Questo metodo viene chiamato una sola volta quando ogni oggetto viene rilevato per la prima volta. Tutti i riferimenti successivi all'oggetto verranno reindirizzati al nuovo oggetto. Questo metodo deve restituire l'oggetto da sostituire o l'oggetto originale.

È possibile restituire Null come oggetto da sostituire, ma può causare NullReferenceException nelle classi che contengono riferimenti all'oggetto originale perché potrebbero aspettarsi un oggetto anziché null.

Documentazione java per java.io.ObjectOutputStream.replaceObject(java.lang.Object).

Le parti di questa pagina sono modifiche basate sul lavoro creato e condiviso dal progetto Open Source Android e usato in base ai termini descritti nella licenza Creative Commons 2.5 Attribuzione.

Si applica a

Vedi anche