Como obter Copia de Objeto e Não referencia????  XML
Índice dos Fóruns » Java Enterprise Edition (Java EE)
Autor Mensagem
wandersonxs
JavaEvangelist
[Avatar]

Membro desde: 24/04/2004 00:58:05
Mensagens: 492
Localização: São Paulo/SP
Offline

Faaala Pessoal,
tenho uma classes que ao subir meu projeto carrego ela e a disponibilizo nesta fachada (outra classe) como uma variavel estatica.. Ela serve de modelo de dados que carrego de um XML.

Agora meu problema, quero criar copias desta classe que esta na variavel static, mas sempre o que consigo eh apenas a referencia. Dai nao importa quantos modelos de objeto obtenha o valor sempre vai refletir em todos por ser static.



Qq ajuda eh bem vindo.. abracos

Obrigado
Wanderson

This message was edited 1 time. Last update was at 24/10/2008 09:49:25


Assina o q????


[Email] [MSN]
julioviegas
Debugger

Membro desde: 14/08/2008 07:50:52
Mensagens: 70
Offline

Procure por *Java deepClone ou deepCopy* no Google.

Uma das formas de fazer isso de modo simples e relativamente rapido eh via serializacao:
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(baos);
oos.writeObject(this);
ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray());
ObjectInputStream ois = new ObjectInputStream(bais);
Object deepCopy = ois.readObject();

Porem, se for um objeto instrumentado, vc terah grandes dores de cabeça. Em minha empresa implementei um deepCopy especializado para hibernate, q tem como proposito remover a serie de instrumentacoes q o hibernate retorna em seus pojos.

Vc *deve* se preocupar com performance ao fazer esse tipo de operacao. Procure medir o tempo q esse procedimento leva.

This message was edited 1 time. Last update was at 24/10/2008 11:14:21


Att,
JV -- julioviegas.com
[WWW] [MSN] [ICQ]
mauricio.miranda
Entusiasta Java

Membro desde: 29/05/2008 07:29:53
Mensagens: 15
Offline

Implemente a interface Clonable. depois ao passar o objeto como parametro use Objet.clone()
 
Índice dos Fóruns » Java Enterprise Edition (Java EE)
Ir para:   
Powered by JForum 2.1.8 © JForum Team