Stmt.load(m.getDeclaringClass().asClass()).invoke("getDeclaredMethod", m.getName(),
MetaClassFactory.asClassArray(m.getParameters()))))
.append(Stmt.loadVariable("method").invoke("setAccessible", true));
ContextualStatementBuilder statementBuilder = Stmt.loadVariable("method")
.invoke("invoke", Refs.get("instance"), args);
if (m.getReturnType().isVoid()) {
tryBuilder.append(statementBuilder);
}
else {
tryBuilder.append(statementBuilder.returnValue());
}
body.append(tryBuilder
.finish()
.catch_(Throwable.class, "e")