Fazer cópia de objeto sem interface clonable

3 respostas
C

Caros amigos,

Recebo como parâmetro um objeto e preciso fazer uma cópia deste. Como não sei se o objeto implementa a interface Clonable não posso fazer um clone. Também não sei que tipo de objeto vou receber.

Agradeço muitíssimo as sugestões!

Reimer

3 Respostas

cv1

Voce pode ao menos forcar que ele seja Serializable?

Rola serializar pra um ByteArrayOutputStream e pegar de volta, que eh um truque conhecido como deep-cloning.

C

Poderia até usar serialização… mas não tenho acesso aos fontes das classes caso eventualmente precise implementar a serialização.

Trata-se de um framework que poderá receber qualquer tipo de objeto e não gostaria de colocar este pre-requisito, no caso que a classe deva ser serializavel.

Será que não poderia fazer através da api de reflexão?

Criar um segundo objeto e ler o conteúdo de todos os atributos do objeto através de reflexão?

louds

Não existe forma segura de fazer isso.
Com reflection você vai ter problema caso o objeto não tenha um construtor vazio e se algum valor interno não puder ser simplemente copiado.

Arrume o erro conceitual do teu framework que vai ser melhor.

Criado 20 de agosto de 2005
Ultima resposta 22 de ago. de 2005
Respostas 3
Participantes 3