Partager via


ObjectOutputStream.ReplaceObject(Object) Méthode

Définition

Cette méthode permet aux sous-classes approuvées d’ObjectOutputStream de remplacer un objet par un autre lors de la sérialisation.

[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

Paramètres

obj
Object

objet à remplacer

Retours

l’autre objet qui a remplacé celui spécifié

Attributs

Exceptions

si une erreur d’E/S se produit lors de la création de l’objet de remplacement.

Remarques

Cette méthode permet aux sous-classes approuvées d’ObjectOutputStream de remplacer un objet par un autre lors de la sérialisation. Le remplacement des objets est désactivé jusqu’à ce que enableReplaceObject soit appelé. La méthode enableReplaceObject vérifie que le flux demandant le remplacement peut être approuvé. La première occurrence de chaque objet écrit dans le flux de sérialisation est passée à replaceObject. Les références suivantes à l’objet sont remplacées par l’objet retourné par l’appel d’origine à replaceObject. Pour vous assurer que l’état privé des objets n’est pas involontairement exposé, seuls les flux approuvés peuvent utiliser replaceObject.

La méthode ObjectOutputStream.writeObject prend un paramètre de type Object (par opposition au type Serializable) pour autoriser les cas où les objets non sérialisables sont remplacés par des objets sérialisables.

Lorsqu’une sous-classe remplace des objets, elle doit s’assurer qu’une substitution complémentaire doit être effectuée pendant la désérialisation ou que l’objet substitué est compatible avec chaque champ où la référence sera stockée. Les objets dont le type n’est pas une sous-classe du type de l’élément champ ou tableau abandonnent la sérialisation en déclenchant une exception et l’objet n’est pas stocké.

Cette méthode n’est appelée qu’une seule fois lorsque chaque objet est rencontré pour la première fois. Toutes les références suivantes à l’objet sont redirigées vers le nouvel objet. Cette méthode doit renvoyer l’objet à remplacer ou l’objet d’origine.

Null peut être retourné en tant qu’objet à remplacer, mais peut provoquer nullReferenceException dans les classes qui contiennent des références à l’objet d’origine, car elles peuvent s’attendre à un objet au lieu de null.

Documentation Java pour java.io.ObjectOutputStream.replaceObject(java.lang.Object).

Les parties de cette page sont des modifications basées sur le travail créé et partagé par le projet Android Open Source et utilisés en fonction des termes décrits dans la licence d’attribution Creative Commons 2.5.

S’applique à

Voir aussi