code: public static Class<?> resolveTypeVariable(Class<?> concreteClass, TypeVariable<?> typeVariable) {
          Type resolvedType = resolveTypeVariableType(concreteClass, typeVariable);
          return resolveType(concreteClass, resolvedType);
      }
docs: Tries to resolve the type variable against the concrete class. The
  concrete class has to be a subtype of the type in which the type variable
  has been declared. This method tries to resolve the given type variable
  by inspecting the subclasses of the class in which the type variable was
  declared and as soon as the resolved type is instance of java.lang.Class
  it stops and returns that class.
  
  @param concreteClass The class which is used to resolve the type. The type for the
  type variable must be bound in this class or a superclass.
  @param typeVariable  The type variable to resolve.
  @return The resolved type as class
  @throws IllegalArgumentException Is thrown when the concrete class is not a subtype of the
  class in which the type variable has been declared.