Descobrir a instancia de um Object

5 respostas
S

Pessoal,

Preciso desenvolver uma rotina para, de posse de um objeto qualquer, gerar um xml com o conteúdo do objeto (Atributos). Como posso via reflection, descobrir qual a instancia de tal objeto para poder usar os get´s?

Ow, qual seria a forma mais apropriada de se fazer isso?

Valeu.

5 Respostas

T

Pegue a classe do tal objeto com getClass(), e a seguir chame os métodos da classe java.lang.Class para listar os métodos que começam por “get” ou “is” e que não tenham parâmetros.

D
if( obj instanceof UmaClasseQualquer ) {
  // obj é do tipo UmaClasseQualquer (classe original ou classes-pai)
}

if( obj.getClass().getName().equals("uma.classe.Legal") ) {
  // a instância de obj é do tipo "uma.classe.Legal"
}
D

Aliás, use algo como XStream para gerar o XML do seu objeto.

S

Daniel,

Como podem chegar diferentes tipos de objetos, não posso usar o instanceof para descobrir qual é o objeto em execução.
Estou usando XOM para gerar o xml.

Thingol, usei o getClass() e a partir dele consigo saber qual o objeto instanciado. Mas como posso pegar os valores dos campos? O método getDeclaredFields e getDeclaredMethods() devolvem os atributos e os métodos, mas como conseguir acesso ao conteúdo dos campos?

D

Dá uma olhada no XStream e vc vai ver que ele faz exatamente o que você quer. Ele serializa um objeto em XML.

Criado 13 de setembro de 2006
Ultima resposta 14 de set. de 2006
Respostas 5
Participantes 3