code: private static Class<?> getGenericParameterType(MethodParameter methodParam, Class<?> source, int typeIndex) {
  		return extractType(methodParam, GenericTypeResolver.getTargetType(methodParam),
  				source, typeIndex, methodParam.getNestingLevel(), 1);
  	}
docs: Extract the generic parameter type from the given method or constructor.
  @param methodParam the method parameter specification
  @param source the source class/interface defining the generic parameter types
  @param typeIndex the index of the type (e.g. 0 for Collections,
  0 for Map keys, 1 for Map values)
  @return the generic type, or <code>null</code> if none