Duvida XStream

5 respostas
fabioebner

Amigos, tenho uma duvida…

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

public  class Pessoa{
   private String nome;
   private String documento;

  //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

obrigado

5 Respostas

R

Creio eu que seja através do Commons BeanUtils que faz alguma magia negra por baixo dos panos.

Só um chute.

S

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?

Veja aqui um exemplo com String: http://blog.caelum.com.br/strings-imutaveis/

fabioebner

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

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.

Achei esses links relacionados:
http://xstream.10960.n7.nabble.com/How-to-configure-xstream-to-use-setter-method-td4083.html

J

É 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

Abraços

Criado 1 de março de 2013
Ultima resposta 3 de mar. de 2013
Respostas 5
Participantes 4