Duplicar Objetos

3 respostas
ajob

Estou criando um programa em que necessito antes de fazer uma determinada função queria criar um backUp dos arquivos enviados para a função…

Por exemplo
Tenho um objeto Tabela e quero Altera-la por uma função e verificar se vale a pena alterar… Caso nao… quero restaurar utilizando um backUp ou coisa assim… Pensei em criar um Novo Objeto Tabela e tentar, mas quando usamos a igualdade ele apenas passa a referencia e não clona o objeto…

Como faço isso???

3 Respostas

Filipe_A

Ola ,

Não sei se isso ajuda mas existe um metodo da classe Object que clona objetos,
chamado clone().

Não sei muito bem como ele funciona, mas talvez sirva pra vc …

Flw, Boa sorte.

WendersonLP

olha eu fiz isto aqui, mas não sei se é realmente o que você está querendo flw?

public class Data
{
    	private String name;
    	private String address;
    	
    	public Data()
    	{
    		name = "";
    		address = "";
    	}
    	
    	public void setData( String n, String a )
    	{
    		name = n;
    		address = a;
    	}
    	
    	public void setName( String n )
    	{
    		name = n;
    	}
    	
    	public void setAddress( String a )
    	{
    		address = a;
    	}
    	
    	public String getName()
    	{
    		return name;
    	}
    	
    	public String getAddress()
    	{
    		return address;
    	}
}

aqui o principal

public class ObjectClone 
{
    
    public static void myClone( Data clone, Data current)
    {
    	clone.setName( current.getName() );
    	clone.setAddress( current.getAddress() );
    }
    
    public static void main(String[] args) 
    	{
    		Data p1 = new Data();
    		Data p2 = new Data();
    		
    		p1.setName( "Wenderson" );
    		p1.setAddress( "Conj. José Luiz da Conceição" );
    		
    		myClone( p2, p1 );
    		
    		System.out.println( "Name: "+ p2.getName() +"\nAddress: "+ p2.getAddress() );
    	
    	}
}
Filipe_A

Então na verdade seria algo assim:

public class MinhaClasse {

	private int i;
	private String nome;

	@Override
	public Object clone() {
		return this;

	}

	public void setI(int i) {
		this.i = i;
	}

	public int getI() {
		return i;
	}

	public void setNome(String nome) {
		this.nome = nome;
	}

	public String getNome() {
		return nome;
	}

}
public class TesteMinhaClasse {

	public static void main(String[] args) {

		MinhaClasse minhaClasse = new MinhaClasse();

		minhaClasse.setI(50);
		minhaClasse.setNome("Teste Clase");

		MinhaClasse minhaClasseClone = new MinhaClasse();
		minhaClasseClone = (MinhaClasse) minhaClasse.clone();

		System.out.println(minhaClasseClone.getI());
		System.out.println(minhaClasseClone.getNome());

	}
}

Bom eu dei uma pesquisada por cima , talvez não seja bem isso .
Mas parece que funciona.

t+

Criado 16 de maio de 2009
Ultima resposta 16 de mai. de 2009
Respostas 3
Participantes 3