Duplicar Objeto

5 respostas
M

Essa pergunta me parece tão simples que dá até vergonha de perguntar :oops:

Como eu faço para fazer uma cópia de um objeto no Java?

5 Respostas

T

Na verdade, o Java foi construído de forma que você não fique copiando objetos desnecessariamente.

Mas se precisar disso, veja se o objeto implementa Cloneable e tem o método “clone” corretamente implementado.

ChronoTrigger

Se for um objeto com muitos filhos não sei se funciona o clone corretamente.

Assim acho melhor vc serializar o objeto e deserializar esse objeto novamente para ter um clone completo dele.

Existem vários códigos desse espalhados na net.

M

thingol:
Na verdade, o Java foi construído de forma que você não fique copiando objetos desnecessariamente.

Mas se precisar disso, veja se o objeto implementa Cloneable e tem o método “clone” corretamente implementado.

Pelo visto é mais complicado do que parece hehe. Mas nesse caso é necessário, pois ele implementa um copiar/colar

S

Oi pessoal estou precisando a mesma coisa não consigo, Detalhe o objeto que estou querendo clonar não é meu e tbm não tem o método clone()…

valeu Obrigado

ChronoTrigger
Object cloneSerializable(Serializable obj) {
  ObjectOutputStream out = null;
  ObjectInputStream in = null;
 
  try {
    ByteArrayOutputStream bout = new ByteArrayOutputStream();
    out = new ObjectOutputStream(bout);
			
    out.writeObject(obj);
    out.close();
			
    ByteArrayInputStream bin = new ByteArrayInputStream(bout.toByteArray());
    in = new ObjectInputStream(bin);			
    Object copy = in.readObject();
 
    in.close();
			
    return copy;
  } catch (Exception ex) {
    ex.printStackTrace();
  } finally {
    try {
      if(out != null) {
        out.close();
      }
				
      if(in != null) {
        in.close();
      }
    } catch (IOException ignore) {}
  }
		
  return null;
}
Criado 5 de setembro de 2008
Ultima resposta 28 de fev. de 2012
Respostas 5
Participantes 4