code: public static ResolvableType forMethodParameter(MethodParameter methodParameter, Type targetType) {
  		Assert.notNull(methodParameter, "MethodParameter must not be null");
  		ResolvableType owner = forType(methodParameter.getContainingClass()).as(methodParameter.getDeclaringClass());
  		return forType(targetType, new MethodParameterTypeProvider(methodParameter), owner.asVariableResolver()).
  				getNested(methodParameter.getNestingLevel(), methodParameter.typeIndexesPerLevel);
  	}
docs: Return a {@link ResolvableType} for the specified {@link MethodParameter},
  overriding the target type to resolve with a specific given type.
  @param methodParameter the source method parameter (must not be {@code null})
  @param targetType the type to resolve (a part of the method parameter's type)
  @return a {@link ResolvableType} for the specified method parameter
  @see #forMethodParameter(Method, int)