Galera, criei um JavaBean Swing para executar algumas funções de um JInternalFrame, porém quando eu uso a API Reflect, o sistema me gera uma exceção de IllegalArgumentException dizendo que a quantidade de parâmetros que passei é inválida, então, eu gostaria de saber como uso os métods getMethod e invoke da java.lang.reflect.Method.
Eis uma parte do meu código:
if (pobjFormulario != null) {
Method[] objMetodos = pobjFormulario.getClass().getMethods();
Class[] clsParam;
try {
for (int i = 0; i < objMetodos.length; i++) {
String strMetodo = objMetodos[i].getName();
clsParam = objMetodos[i].getParameterTypes();
if ("fechar".equals(strMetodo)) {
pintOperacao = TipoOperacao.NULO;
habilitaControles(pintOperacao);
Method objMeth = pobjFormulario.getClass().getMethod(strMetodo, clsParam);
Object invoke = objMeth.invoke(pobjFormulario, null); //O erro ocorre nessa linha, como utilizo isso pra executar o método da minha classe?
System.out.println(invoke.toString());
System.out.println("Método: " + strMetodo);
System.out.println("Parâmetro: " + clsParam[0].getName());
break;
}
}
} catch (NoSuchMethodException | SecurityException | IllegalAccessException | InvocationTargetException ex) {
Logger.getLogger(BarraControles.class.getName()).log(Level.SEVERE, null, ex);
System.out.println(ex.getMessage());
System.out.println(ex.getCause());
}
}
Não consegui descobrir qual o problema, e já procurei muito na web mas não encontrei nada que me ajudasse.
Desde já agradeço a ajuda.
Leandro.