Descobrir a instancia de um Object

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.

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.

[code]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”
}[/code]

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

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á uma olhada no XStream e vc vai ver que ele faz exatamente o que você quer. Ele serializa um objeto em XML.