pMethod||Locale||TimeZone||ZoneId).class == paramType;
}
16 = {ServletResponseMethodArgumentResolver@6908}
// 参数类型是 ServletResponse、OutputStream 或 Writer 或它们的子类
public boolean supportsParameter(MethodParameter parameter) {
return (ServletResponse || OutputStream || Writer).class.isAssignableFrom(parameter.getParameterType());
}
17 = {HttpEntityMethodProcessor@6909}
// 参数类型是 HttpEntity 或 RequestEntity
public boolean supportsParameter(MethodParameter parameter) {
Class<?> parameterType = parameter.getParameterType();
return (parameterType == HttpEntity.class) || (parameterType == RequestEntity.class);
}
18 = {RedirectAttributesMethodArgumentResolver@6910}
// 参数类型是 RedirectAttributes 或其子类
public boolean supportsParameter(MethodParameter parameter) {
return RedirectAttributes.class.isAssignableFrom(parameter.getParameterType());
}
19 = {ModelMethodProcessor@6911}
// 参数类型是 Model 或其子类
public boolean supportsParameter(MethodParameter parameter) {
return Model.class.isAssignableFrom(parameter.getParameterType());
}
20 = {MapMethodProcessor@6912}
/*
* 同时满足以下两个条件:
* 1. 参数类型是 Map 或其子类
* 2. 参数没有标任何注解
*/
public boolean supportsParameter(MethodParameter parameter) {
return (Map.class.isAssignableFrom(parameter.getParameterType()) && parameter.getParameterAnnotations().length == 0);
}
21 = {ErrorsMethodArgumentResolver@6913}
// 参数类型是 Errors 或其子类
public boolean supportsParameter(MethodParameter parameter) {
return Errors.class.isAssignableFrom(parameter.getParameterType());
}
22 = {SessionStatusMethodArgumentResolver@6914}
// 参数类型是 SessionStatus 或其子类
public boolean supportsParameter(MethodParameter parameter) {
return parameter.getParameterType() == SessionStatus.class;
}
23 = {UriComponentsBuilderMethodArgumentResolver@6915}
// 参数类型是 UriComponentsBuilder 或 ServletUriComponentsBuilder
public boolean supportsParameter(MethodParameter parameter) {
Class<?> parameterType = parameter.getParameterType();
return (parameterType == UriComponentsBuilder.class) || (parameterType == ServletUriComponentsBuilder.class);
}
24 = {PrincipalMethodArgumentResolver@6916}
// 参数类型是 Principal 或其子类
public boolean supportsParameter(MethodParameter parameter) {
return Principal.class.isAssignableFrom(parameter.getParameterType());
}
25 = {RequestParamMethodArgumentResolver@6917}
/*
* 满足以下四类条件中的任意一类:
* 1. 参数标有 @RequestParam 注解、且类型不是 Map 或其子类
* 2. 参数标有 @RequestParam 注解、且类型是 Map 或其子类、且 @RequestParam 注解的"name"或"value"属性不为空
* 3. 参数类型是 MultipartFile 或 Part(包括它们的数组或集合)、且没有标 @RequestPart 注解
* 4. 参数类型不简单、且没有标 @RequestPart 注解
*/
public boolean supportsParameter25(MethodParameter parameter) {
if (parameter.hasParameterAnnotation(RequestParam.class)) {
if (Map.class.isAssignableFrom(parameter.nestedIfOptional().getNestedParameterType())) {
RequestParam requestParam = parameter.getParameterAnnotation(RequestParam.class);
return (requestParam != null && StringUtils.hasText(requestParam.name()));
} else {
return true;
}
} else {
if (parameter.hasParameterAnnotation(RequestPart.class)) {
return false;
}
parameter = parameter.nestedIfOptional();
if (MultipartResolutionDelegate.isMultipartArgument(parameter)) {
return true;
} else {
return B