Конечно,
@SuppressWarnings("unchecked")
<T> T doMethod(Method m, Class<T> returnType, Object Args ...) {
Object obj = m.getDeclaringClass().getConstructor().newInstance();
return (T) m.invoke(obj, args);
}
String result = doMethod(m, m.getReturnType(), "Hello");
Одному безразлично, какая архитектура требует такой вещи, но это выходит за рамки :))
Если вам это не нравится, вы также можете отключить привязку returnType, и компилятор автоматически приведёт его к тому типу, которому вы назначаете тип возврата. например, это законно:
@SuppressWarnings("unchecked")
<T> T doMethod(Method m, Object Args ...) {
Object obj = m.getDeclaringClass().getConstructor().newInstance();
return (T) m.invoke(obj, args);
}
В ролях будет все, что вы пытаетесь назначить, но я думаю, что большинство людей сочтут это подозрительным.