Preciso de um pequeno help aqui, preciso transferir o valor das propriedades de um objeto Javabean para outro.
Tenho parte do método pronto mas não estou sabendo como dar o set nas propriedades do objeto destino, já os get das propriedades do objeto origem estou recuperando sem problemas.
Estou passando um exemplo do que quero com um Javabean bem simples, no final quero que o contaDestino tenha os mesmos valores que tem no contaOrigem.
Método:
[code]public static Object copiarJavabean(Object origem, Object destino) {
Class classeOrigem = origem.getClass();
Method[] metodosOrigem = classeOrigem.getDeclaredMethods();
Class classeDestino = destino.getClass();
Method[] metodosDestino = classeDestino.getDeclaredMethods();
for (int i = 0; i < metodosOrigem.length; i++) {
Method metodoOrigem = metodosOrigem[i];
Method metodoDestino = metodosDestino[i];
if (metodoOrigem.getName().startsWith("get") || metodoOrigem.getName().startsWith("is")) {
Object value;
try {
value = metodoOrigem.invoke(origem, new Object[]{});
System.out.println("Nome do metodo: "+metodoOrigem.getName() + ", valor = " + value);
// Aqui preciso setar a propriedade do Destino com o 'value' do origem
} catch (IllegalAccessException ex) {
Logger.getLogger(Lib.class.getName()).log(Level.SEVERE, null, ex);
} catch (IllegalArgumentException ex) {
Logger.getLogger(Lib.class.getName()).log(Level.SEVERE, null, ex);
} catch (InvocationTargetException ex) {
Logger.getLogger(Lib.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
return destino;
}[/code]
Chamada para fazer a cópia:
[code]Conta contaOrigem = new Conta();
contaOrigem.setCodigo(1);
contaOrigem.setCodigoGrupo(2);
contaOrigem.setEmUso(true);
contaOrigem.setNome(“Conta Exemplo”);
Conta contaDestino = new Conta();
contaDestino = (Conta)copiarJavabean(contaOrigem, contaDestino);
[/code]
Qualquer ajuda é bem vinda.