Ejecutar de forma dinámica un método de un objeto dado

1951 vistas

Queremos usar el método invoke definido en la clase Method:



java
  1. Object invoke(Object obj, Object[] args)



Veamos un ejemplo genérico de ejecución dinámica de un método dado:



java
  1. Object ejecutarMetodo(Object obj, Object[] args, String miMetodo) throws Exception
  2. {
  3.   Class[] paramTypes = null;
  4.   if(args != null)
  5.   {
  6.       paramTypes = new Class[args.length];
  7.       for(int i=0;i<args.length;++i)
  8.       {
  9.         paramTypes[i] = args[i].getClass();
  10.       }
  11.   }
  12.   Method m = obj.getClass().getMethod(miMetodo, paramTypes);
  13.   return m.invoke(obj,args);
  14. }