Invocando Métodos
Invocando um método estático:
Class clazz;
Object retorno = new Mirror().on(clazz).invoke().method("nomeMetodo")
.withArgs(valor1, valor2);
Invocando um método de instância:
Object target;
Object returnValue = new Mirror().on(target).invoke().method("nomeMetodo")
.withoutArgs();
Você também pode passar um java.lang.reflect.Method ao invés de uma String com o nome do método:
Invocando um método de instância:
Method umMetodo;
Object obj;
Object retorno = new Mirror().on(obj).invoke().method(umMetodo).withArgs(valor1, valor2);
Invocando um setter:
Field field;
Object target;
new Mirror().on(target).invoke().setterFor(field).withValue(value1);
Invocando um getter:
String fieldName;
Object target;
Object returnValue = new Mirror().on(target).invoke().getterFor(fieldName);