Esta es la segunda entrega de Reflection. Hoy vamos a ver como llamar a metodos via esta tecnica. En la proxima entrega como leer variables privadas donde no hay acceso a un getter.

Como llamar a un metodo por reflection

Viendo el capitulo anterior vamos a instanciar una clase y llamar a un metodo publico via esta tecnica.

La instanciacion

String className = "com.my.Person";
Person person = (Person)Class.forName(className).newInstance();

El llamado al metodo doSomething sin parametros se hace mediante el codigo provisto debajo.

Object params = null;
Method method = person.getClass().getMethod("doSomething", null);
SomeResult result = (SomeResult)method.invoke(person, params);

Si el metodo retorna algun tipo en particular tal cual se ve en este ejemplo vamos a utilizar la tecnica de Casting para obtener el objeto deseado. Por lo contrario, si el return type es VOID, no hay que asignar ningun valor de retorno.