tenho um xml simples, e preciso passar ele para um objeto, estou utilizando o xStream para isso. ate ai sem problemas, estou conseguindo fazer sem problemas, porem estava fazendo um teste e fiquei com uma duvida…
segue a minha classe
publicclassPessoa{privateStringnome;privateStringdocumento;//Getters e Setters}
Ele esta preenchendo normalmente, porem precisei fazer uns testes e coloquei um breakpoint nos meus getters e setters e para minha surpresa quando mandei debugar ele não parou nos meus breakpoints.
Agora vem a minha duvida, COMO ele preenche o meu objeto sem utilizar os setters? sendo que as minhas prop sao privates
Creio eu que seja através do Commons BeanUtils que faz alguma magia negra por baixo dos panos.
Só um chute.
S
Schuenemann
fabioebner:
Agora vem a minha duvida, COMO ele preenche o meu objeto sem utilizar os setters? sendo que as minhas prop sao privates
Por reflexão, que é como o Hibernate faz. E também sua IDE. Já reparou que o debug do Eclipse/Netbeans mostra o valor dos atributos privados dos objetos?
Eu imaginei que fosse por reflection, mas tira uma duvida minha… ferrou entao?? pq eu queria executar uma acao quando ele entrar no meu setter, vou ter que encontrar outra forma pra isso entao?
S
Schuenemann
Não conheço bem o XStream, mas talvez possa ser configurável. No Hibernate, por exemplo, você escolhe se quer que o atributo seja atribuído diretamente ou usando o setter.
É no Reflection mesmo… classes bean é aconselhável não alterar, basicamente atributos e getters/setters e só… no caso é a intenção manter ele apenas como um container mesmo… se precisar alterar a forma como o dado será tratado é bom fazer isso fora do bean… quando vc irá serializar/deserializar usando o XStream por exemplo