Mapear um objeto para outro

3 respostas
J

Ae pessoal.

Gostaria se saber se há algum framework que se posso copiar algumas propriedades de um objeto para outro sem a necessidade de chamar explicitamente métodos set. Por exemplo:
public class Usuario1 {
	private String username;
	private String password;
	private String firstName;
	private String lastName;
	private String email;

        geters e seters...
}

public class Usuario2 {
	private String username;
	private String password;
	private String firstName;
	private String lastName;
	private String email;
        private String tel;
        private String end;

        geters e seters...
}

// nao quero fazer isso:
Usuario1 u1 = new Usuario1();
u1.setXXX(u2.getXXX);
u1.setYYY(u2.getYYY);
.....

Era isso..
Se Alguém puder me ajudar!!!

3 Respostas

Metaleiro

[color=darkblue]Se os objetos forem iguais utilize um casting

Usuario1 user = (Usuario1) usuario2

ou você pode implementar a outra classe

public class Usuario1 implements Usuario2
{ 
}

[/color]

J

não cara… isso não funciona!
mas obrigado pela colaboração!

emmanuel.silva

Se você for copiar para um objeto de mesmo tipo (de uma classe Usuario para outra classe Usuario) você pode sobreescrever o metodo clone

public class Usuario {

    protected Object clone() throws CloneNotSupportedException {
       Usuario cloneUsuario = new Usuario();
       cloneUsuario.setXXX(this.getXXX());  
       ...
    }

}

...

//para utilizar
Usuario usuario = new Usuario();
Usuario outroUsuario = usuario.clone();

Agora se você quiser algo mais complexo, você pode dar uma olhada no Reflection que está presente desde o Java 5, mais não acho que isso seje necessário para você, porque é bom tomar muito cuidado com reflection, acho que seria como “matar uma barata com uma basuca” no seu caso.

Criado 8 de maio de 2007
Ultima resposta 8 de mai. de 2007
Respostas 3
Participantes 3