Linguaggio

Object.Clone Metodo

Definizione

Crea e restituisce una copia di questo oggetto.

[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

Valori restituiti

clone di questa istanza.

Attributi

Eccezioni

se la classe dell'oggetto non implementa l'interfaccia Cloneable .

Commenti

Crea e restituisce una copia di questo oggetto. Il significato preciso di "copia" può dipendere dalla classe dell'oggetto . La finalità generale è che, per qualsiasi oggetto x, l'espressione: <blockquote>

x.clone() != x

</blockquote> sarà true e che l'espressione: <blockquote>

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

</blockquote> sarà true, ma questi non sono requisiti assoluti. Anche se in genere è il caso che: <blockquote>

x.clone().equals(x)

</blockquote> sarà true, questo non è un requisito assoluto.

Per convenzione, l'oggetto restituito deve essere ottenuto chiamando super.clone. Se una classe e tutte le relative superclassi (ad eccezione Objectdi ) obbediscono a questa convenzione, sarà il caso che x.clone().getClass() == x.getClass().

Per convenzione, l'oggetto restituito da questo metodo deve essere indipendente da questo oggetto (che viene clonato). Per ottenere questa indipendenza, potrebbe essere necessario modificare uno o più campi dell'oggetto restituito da super.clone prima di restituirlo. In genere, ciò significa copiare tutti gli oggetti modificabili che comprendono la "struttura profonda" interna dell'oggetto clonato e sostituendo i riferimenti a questi oggetti con riferimenti alle copie. Se una classe contiene solo campi primitivi o riferimenti a oggetti non modificabili, in genere non è necessario modificare alcun campo nell'oggetto restituito da super.clone .

per java.lang.Object.clone().

Le parti di questa pagina sono modifiche basate sul lavoro creato e condiviso dalla e usati in base ai termini descritti in Creative License 2.5 Attribution License.

Si applica a