Advertência ao usar reflexão e genéricos

Como eu reescrevo isso:

<T> T callMethod(String methodName, Object[] parameters) throws ... {
    ...
    return (T) SomeClass.class.getDeclaredMethod(methodName, parameterTypes).invoke(binding, parameters);
}

por isso não gera um aviso

warning: [unchecked] unchecked cast
        return (T) SomeClass.class.getDeclaredMethod(methodName, parameterTypes).invoke(binding, parameters);
required: T
found:    Object
where T is a type-variable:
T extends Object declared in method <T>callMethod(String,Object[])

Quero dizer, a solução sem SupressWarnings.

questionAnswers(5)

yourAnswerToTheQuestion