Como faço para copiar o valor de um objeto para outro objeto? Gostaria de ter um objeto igual mas não idêntico.
Vi sobre o clone() mas eu estou usando um List de um tipo específico que criei. Essa opção clone não aparece.
Como faço para copiar o valor de um objeto para outro objeto? Gostaria de ter um objeto igual mas não idêntico.
Vi sobre o clone() mas eu estou usando um List de um tipo específico que criei. Essa opção clone não aparece.
Vc tem que sobreescrever o método clone. Ele é protegido por padrão.
Vc vai ter que fazer na mão… Se sua classe fosse um Bean dava para utilizar algumas classes utilitárias da apache para fazer a cópia.
Ex: BeanUtils.copyProperties
Não bastaria criar outro objeto do mesmo tipo e fazer ele receber o objeto que deseja copiar?
Como faço para copiar o valor de um objeto para outro objeto? Gostaria de ter um objeto igual mas não idêntico.Vi sobre o clone() mas eu estou usando um List de um tipo específico que criei. Essa opção clone não aparece.
Igual mas não identico é boa...
Vc usa clone.
public class X extends Cloneable{
public Object clone(){
return super.clone();
}
}
Ok. Implementei o clone e funcionou.
Leandro Vecchi, não dá porque o objeto é estático e final, ou seja, quem for atribuido a ele passará a apontar para a mesma área de memória. Se você igualar esse objeto a outros 10, todos terão sempre o mesmo valor. Na verdade você não iguala, mas “aponta” para o mesmo valor.
sergiotaborda, dentre os conceitos de objetos e persistência de objetos existe os tipos igual e idêntico. O objeto igual possui mesmo valor mas endereço de memória diferente. Objetos idênticos possuem o mesmo id em memória. Não entendi o porquê do “boa”. Uma boa lida em livro de tecnologias de banco de dados e conceitos de objetos te ajudará a entender melhor.
Obrigado pela ajuda pessoal.
Não bastaria criar outro objeto do mesmo tipo e fazer ele receber o objeto que deseja copiar?
isso vc copia o mesmo objeto e com isso irá modifica-lo
Eu não sabia dessa.
E nem te estressa, ele só não sabia e achou que você tinha se enganado. =D
Eu não sabia dessa.
E nem te estressa, ele só não sabia e achou que você tinha se enganado. =D
Que isso, estressei nao, me desculpe se falei mal.
Disse isso porque eh bom para melhorar o conceito daqueles que vao ler este topico. Eu tambem fiquei sabendo sobre isso a pouco tempo, mas eh um conceito importante que pode evitar problemas basicos de manipulacao de objetos.