Pegar valor de objeto de objeto por reflection [resolvido]

Boa tarde pessoa,

eu tenho a seguinte situação: aluno.getPessoa().setNome(“João”);

como eu posso pegar o nome “João” por reflection?

eu já procurei no google e aqui no fórum, mas não encontro alguma informação. Não sei se estou usando a pesquisa errada.

Se alguém souber como fazer ou onde encontrar a resposta eu agradeço. =]

esse tutorial me ajudou iniciar com reflection

http://www.guj.com.br/articles/10

caso surja uma nova duvida entre em contato

abrasss

Muito obrigado renan!

Serviu o post. Consegui fazer.

o usuário passa uma string do tipo “o.funcionario.pessoa” e eu tinha que pegar o valor de pessoa. Daí peguei essas informações nesse tutorial que me permitiram pegar o valor de fucionário de pois e de pessoa, resolvendo meu problema:

Class cls = Class.forName(obj.getClass().getName());  
Method meth = cls.getMethod(campoSubS, null);  
obj = meth.invoke(obj, null);

no final das contas ficou assim meu código:

for(String campo : campos){
	    			//criando array com todos os itens da pesquisa. ex.: o.usuario.pessoa -> [o] [usuario] [pessoa]
	    			String[] campoConsultaDesmembrado = campo.split("\\.");
	    			
	    			//a variável campoSubS recebe o nome do item do campoConsultaDesmenbrado alterado para o padrão de um método get no camelcase. ex.: getUsuario ou getPessoa 
	    			String campoSubS = "";
	    			
	    			Object obj = instancia;
	    			
	    			//laço que pecorre todos os níveis do hql para para poder pegar o valor que será consultado. ex.: o.usuario.pessoa -> primeiro vai pegar o getUsuario para depois pegar o getPessoa
	    			for(int i = 1 ; i < campoConsultaDesmembrado.length; i++){
	    				String campoConsulta = campoConsultaDesmembrado[i];
    					campoSubS = "get".concat(campoConsulta.substring(0,1).toUpperCase().trim().concat(campoConsulta.substring(1).trim()));
    					if(obj != null){
				            Class cls = Class.forName(obj.getClass().getName());  
				            Method meth = cls.getMethod(campoSubS, null);  
			            	obj = meth.invoke(obj, null);
    					}
	    			}

não sei se é o melhor que tem, mas é o melhor que eu consegui fazer e está funcionando. =D

vlw pela ajuda.

parabens cara! precisando estamos ai

precisou disso pra fazer validações?

abrasss

isso, eu precisava pegar o hql informado pelo programador e pegar o valor na instância para poder comparar no select.

expliquei direito? :s

ahhaah explicou sim, perguntei pq tinha passado por uma situação semelhante semana passada ahahah

abrasss