ExpertiDict

Java · Avançado · Inglês · Técnico

Cloneable

/ˈkloʊnəbəl/substantivo

Interface marcadora que autoriza Object.clone() a copiar um objeto campo a campo. Seu design é considerado falho, e o clone padrão faz cópia rasa.

Onde usar

Em review de código legado aparece clone() com super.clone(). Hoje se prefere construtor de cópia ou método de fábrica.

Em código

class Caixa implements Cloneable {
  public Caixa clone() {
    try { return (Caixa) super.clone(); }
    catch (CloneNotSupportedException e) {
      throw new AssertionError(e);
    }
  }
}

Exemplos

Don't implement Cloneable, add a copy constructor instead.

Não implemente Cloneable, adicione um construtor de cópia.

The clone shares the same inner list as the original.

O clone compartilha a mesma lista interna do original.

Cuidado

A cópia padrão é rasa: campos de referência apontam para os mesmos objetos do original. E a interface nem declara o método clone.

Origem

Do inglês clone, cópia idêntica, mais o sufixo -able.

Veja também

Todos os termos de Java