renanreismartins 31 de jan. de 2012
esse tutorial me ajudou iniciar com reflection
http://www.guj.com.br/articles/10
caso surja uma nova duvida entre em contato
abrasss
marlonmca 31 de jan. de 2012
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.
renanreismartins 1 de fev. de 2012
parabens cara! precisando estamos ai
precisou disso pra fazer validações?
abrasss
marlonmca 2 de fev. de 2012
isso, eu precisava pegar o hql informado pelo programador e pegar o valor na instância para poder comparar no select.
expliquei direito? :s
renanreismartins 3 de fev. de 2012
ahhaah explicou sim, perguntei pq tinha passado por uma situação semelhante semana passada ahahah
abrasss