Freigeben über


ObjectOutputStream.ReplaceObject(Object) Methode

Definition

Diese Methode ermöglicht es vertrauenswürdigen Unterklassen von ObjectOutputStream, während der Serialisierung ein Objekt für ein anderes zu ersetzen.

[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

Parameter

obj
Object

das zu ersetzende Objekt

Gibt zurück

das alternative Objekt, das das angegebene Objekt ersetzt hat

Attribute

Ausnahmen

wenn beim Erstellen des Ersetzungsobjekts ein E/A-Fehler auftritt.

Hinweise

Diese Methode ermöglicht es vertrauenswürdigen Unterklassen von ObjectOutputStream, während der Serialisierung ein Objekt für ein anderes zu ersetzen. Das Ersetzen von Objekten ist deaktiviert, bis enableReplaceObject aufgerufen wird. Die enableReplaceObject-Methode überprüft, ob der Datenstrom, der die Ersetzung anfordert, als vertrauenswürdig eingestuft werden kann. Das erste Vorkommen jedes Objekts, das in den Serialisierungsstream geschrieben wurde, wird an replaceObject übergeben. Nachfolgende Verweise auf das Objekt werden durch das objekt ersetzt, das durch den ursprünglichen Aufruf von replaceObject zurückgegeben wird. Um sicherzustellen, dass der private Zustand von Objekten nicht unbeabsichtigt verfügbar gemacht wird, verwenden nur vertrauenswürdige Datenströme replaceObject.

Die ObjectOutputStream.writeObject-Methode verwendet einen Parameter vom Typ Object (im Gegensatz zum Typ Serializable), um Fälle zu ermöglichen, in denen nicht serialisierbare Objekte durch serialisierbare Objekte ersetzt werden.

Wenn eine Unterklasse Objekte ersetzt, muss sichergestellt werden, dass entweder eine ergänzende Ersetzung während der Deserialisierung erfolgen muss oder dass das ersetzte Objekt mit jedem Feld kompatibel ist, in dem der Verweis gespeichert wird. Objekte, deren Typ keine Unterklasse des Typs des Felds oder Arrayelements ist, brechen die Serialisierung ab, indem eine Ausnahme ausgelöst wird und das Objekt nicht gespeichert wird.

Diese Methode wird nur einmal aufgerufen, wenn jedes Objekt zuerst gefunden wird. Alle nachfolgenden Verweise auf das Objekt werden an das neue Objekt umgeleitet. Diese Methode sollte das zu ersetzende Objekt oder das ursprüngliche Objekt zurückgeben.

Null kann als ersetztes Objekt zurückgegeben werden, kann aber in Klassen, die Verweise auf das ursprüngliche Objekt enthalten, null verursachen, da sie möglicherweise ein Objekt anstelle von NULL erwarten.

Java-Dokumentation für java.io.ObjectOutputStream.replaceObject(java.lang.Object).

Teile dieser Seite sind Änderungen auf der Grundlage von Arbeiten, die vom Android Open Source-Projekt erstellt und freigegeben werden und gemäß den in der Creative Commons 2.5 Attribution License beschriebenen Begriffen verwendet werden.

Gilt für:

Weitere Informationen