Bom Dia Pessoal,
Estou com uma dúvida, e um problema que está me atrasando a vida. Por favor, alguem me ajude…
Começa assim, tenho uma classe que estou tentando executar o método Get apartir do nome do atributo, tendo uma situação perfeita, todos os atributos serão encapsulados.
Segue o trecho do código.
public static Object getRetornoMetodoReflectionByAtributo(Class classeMetodo, String nomeAtributo){
Object objRetorno = new Object();
try {
Method[] metodosClasse = classeMetodo.getDeclaredMethods();
for(Method metodo : metodosClasse){
if(metodo.getName().toUpperCase().indexOf("GET" + nomeAtributo.toUpperCase()) > -1){
if(classeMetodo.getSimpleName().equalsIgnoreCase("ModuloAcessoDadoBean")){
ModuloAcessoDadoBean classeModulo = ((ModuloAcessoDadoBean)classeMetodo.cast(classeMetodo.getClass())) = classeMetodo;
ModuloAcessoDadoBean modBean = classeModulo;
objRetorno = metodo.invoke(modBean, null);
System.out.println(modBean.getNmModuloAcessoDado() + " - " + metodo.getName() + " = " + objRetorno);
}else if(classeMetodo.getSimpleName().equalsIgnoreCase("AvaliacaoSqlAcessoDadoBean")){
AvaliacaoSqlAcessoDadoBean AvaliacaoAcessoBean = (AvaliacaoSqlAcessoDadoBean)classeMetodo.cast(new AvaliacaoSqlAcessoDadoBean());
objRetorno = metodo.invoke(AvaliacaoAcessoBean, null);
}else if(classeMetodo.getSimpleName().equalsIgnoreCase("OcorrenciaRestricaoRegraBean")){
OcorrenciaRestricaoRegraBean ocorrenciaRestricaoRegraBean = (OcorrenciaRestricaoRegraBean)classeMetodo.cast(new OcorrenciaRestricaoRegraBean());
objRetorno = metodo.invoke(ocorrenciaRestricaoRegraBean, null);
}
}
}
}catch (IllegalArgumentException ilegal){
System.out.println("Erro");
}catch (Throwable e) {
System.err.println("-->" + e);
}
return objRetorno;
}
O Cast em si eu consigo fazer, porém meu BEAN (classe que vem no parâmetro) está todo alimentado, e quando faço o Cast perco todas as informações, devido a utilizar o cast assim OcorrenciaRestricaoRegraBean ocorrenciaRestricaoRegraBean = (OcorrenciaRestricaoRegraBean)classeMetodo.cast(new OcorrenciaRestricaoRegraBean());
Na hora que instancio um novo para usar no cast, perco tudo.
Alguem por favor poderia me Ajudar, como faço um cast, sem perder os dados do meu Bean…
Urgente…
Muito Obrigado pessoal…