Um problema que alguns ja podem ter passado ao clonar objetos é quando vc tem uma lista dentro desse objeto. Por exemplo um objeto pessoa que tem uma lista de dependes, quando vc clona este objeto sem clonar tb a lista os dois objetos(principal e clonado) apontam para a mesma lista.
/**
* Método que copia o objeto atual utilizando serialização.
* @return Retorna o objeto clone.
*/
public Object clone(){
Object newObject = null;
try{
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(baos);
oos.writeObject(this);
ObjectInputStream ois = new ObjectInputStream(new ByteArrayInputStream(baos. toByteArray()));
newObject = ois.readObject();
ois.close();
oos.close();
baos.close();
}
catch(IOException ioe){
}
catch(ClassNotFoundException cnfe){
}
return newObject;
}
Agradecimentos a Luiz Augusto, pela idéia.
* Método que copia o objeto atual utilizando serialização.
* @return Retorna o objeto clone.
*/
public Object clone(){
Object newObject = null;
try{
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(baos);
oos.writeObject(this);
ObjectInputStream ois = new ObjectInputStream(new ByteArrayInputStream(baos.
newObject = ois.readObject();
ois.close();
oos.close();
baos.close();
}
catch(IOException ioe){
}
catch(ClassNotFoundException cnfe){
}
return newObject;
}
Agradecimentos a Luiz Augusto, pela idéia.
Nenhum comentário:
Postar um comentário