terça-feira, 23 de outubro de 2012

Descobrir qual/se propriedade do bean foi alterada



public class MyBean {
    private Long id;
    private String nome;
    private String campo2;
    public String getCampo2() {
        return campo2;
    }
    public void setCampo2(String campo2) {
        this.campo2 = campo2;
    }
    public Long getId() {
        return id;
    }
    public void setId(Long id) {
        this.id = id;
    }
    public String getNome() {
        return nome;
    }
    public void setNome(String nome) {
        this.nome = nome;
    }
}



public class Main {
 
    public static void main(String[] args) {
        MyBean bean1 = new MyBean();
         
        bean1.setId(new Long(1));
        bean1.setNome("MyBean name");
        bean1.setCampo2("MyBean campo2");
         
        MyBean bean2 = new MyBean();
         
        bean2.setId(new Long(1));
        bean2.setNome("MyBean nam2e");
        bean2.setCampo2("MyBean campo2");
 
        Field f[] = bean1.getClass().getDeclaredFields();
         
        for (int i = 0; i < f.length; i++) {
            Field field = f[i];
             
            BeanComparator bc = new BeanComparator(field.getName());
            int result = bc.compare(bean1, bean2);
             
            System.out.println("["+field.getName()+"]: "+result);
             
        }
    }

Se o resultado for diferente de 0, as propriedades são diferentes, com isso, sei quais campos foram alterados.

Fonte: http://javafree.uol.com.br/topic-11702-Descobrir-qual-propriedade-do-bean-foi-alterada.html

Nenhum comentário:

Postar um comentário