Object.Clone Método

Definição

Cria e retorna uma cópia desse objeto.

[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

Retornos

um clone dessa instância.

Atributos

Exceções

se a classe desse objeto não implementar a Cloneable interface.

Comentários

Cria e retorna uma cópia desse objeto. O significado preciso de "copy" pode depender da classe do objeto. A intenção geral é que, para qualquer objeto x, a expressão: <blockquote>

x.clone() != x

</blockquote> será true e que a expressão: <blockquote>

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

</blockquote> será true, mas estes não são requisitos absolutos. Embora normalmente seja o caso em que: <blockquote>

x.clone().equals(x)

</blockquote> será true, este não é um requisito absoluto.

Por convenção, o objeto retornado deve ser obtido chamando super.clone. Se uma classe e todas as suas superclasses (exceto Object) obedecerem a esta convenção, será o caso de que x.clone().getClass() == x.getClass().

Por convenção, o objeto retornado por esse método deve ser independente desse objeto (que está sendo clonado). Para obter essa independência, talvez seja necessário modificar um ou mais campos do objeto retornados super.clone antes de devolvê-lo. Normalmente, isso significa copiar quaisquer objetos mutáveis que componham a "estrutura profunda" interna do objeto que está sendo clonado e substituir as referências a esses objetos por referências às cópias. Se uma classe contém apenas campos primitivos ou referências a objetos imutáveis, geralmente é o caso de nenhum campo no objeto retornado precisar super.clone ser modificado.

Java documentação para java.lang.Object.clone().

Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Project Open Source do Open Source e usadas de acordo com os termos descritos na Creative Commons 2.5.

Aplica-se a