Langage

Object.Clone Méthode

Définition

Crée et retourne une copie de cet objet.

[Android.Runtime.Register("clone", "()Ljava/lang/Object;", "GetCloneHandler")]
protected virtual Java.Lang.Object Clone();
[<Android.Runtime.Register("clone", "()Ljava/lang/Object;", "GetCloneHandler")>]
abstract member Clone : unit -> Java.Lang.Object
override this.Clone : unit -> Java.Lang.Object

Retours

clone de cette instance.

Attributs

Exceptions

si la classe de cet objet n’implémente pas l’interface Cloneable .

Remarques

Crée et retourne une copie de cet objet. La signification précise de « copy » peut dépendre de la classe de l’objet. L’intention générale est que, pour n’importe quel objet x, l’expression : <blockquote>

x.clone() != x

</blockquote> a la valeur true et que l’expression : <blockquote>

x.clone().getClass() == x.getClass()

</blockquote> sera true, mais ce ne sont pas des exigences absolues. Bien qu’il s’agit généralement du cas suivant : <blockquote>

x.clone().equals(x)

</blockquote> sera true, ce n’est pas une exigence absolue.

Par convention, l’objet retourné doit être obtenu en appelant super.clone. Si une classe et toutes ses superclasses (sauf Object) obéissent à cette convention, ce sera le cas.x.clone().getClass() == x.getClass()

Par convention, l’objet retourné par cette méthode doit être indépendant de cet objet (qui est cloné). Pour atteindre cette indépendance, il peut être nécessaire de modifier un ou plusieurs champs de l’objet retourné avant super.clone de le renvoyer. En règle générale, cela signifie copier tous les objets mutables qui composent la « structure profonde » interne de l’objet cloné et en remplaçant les références à ces objets par des références aux copies. Si une classe contient uniquement des champs primitifs ou des références à des objets immuables, il s’agit généralement du cas où aucun champ de l’objet retourné par super.clone doit être modifié.

Java documentation pour java.lang.Object.clone().

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

S’applique à