下面列出了org.springframework.core.MethodParameter#forParameter ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
private static TypeDescriptor createTypeDescriptor(Method method, int paramIndex) {
Parameter parameter = method.getParameters()[paramIndex];
MethodParameter methodParameter = MethodParameter.forParameter(parameter);
TypeDescriptor typeDescriptor = new TypeDescriptor(methodParameter);
// Feign applies the Param.Expander to each element of an Iterable, so in those
// cases we need to provide a TypeDescriptor of the element.
if (typeDescriptor.isAssignableTo(ITERABLE_TYPE_DESCRIPTOR)) {
TypeDescriptor elementTypeDescriptor = getElementTypeDescriptor(
typeDescriptor);
checkState(elementTypeDescriptor != null,
"Could not resolve element type of Iterable type %s. Not declared?",
typeDescriptor);
typeDescriptor = elementTypeDescriptor;
}
return typeDescriptor;
}
@Test
void testSupport() throws Exception {
AnyOsFileValueProvider providerForAll = new AnyOsFileValueProvider(true);
Method method = TestCommand.class.getDeclaredMethod("test", File.class, File.class, String.class);
MethodParameter paramFileWithProvider = MethodParameter.forParameter(method.getParameters()[0]);
MethodParameter paramWithoutProvider = MethodParameter.forParameter(method.getParameters()[1]);
MethodParameter paramNotFile = MethodParameter.forParameter(method.getParameters()[2]);
assertTrue(providerForAll.supports(paramFileWithProvider, null));
assertTrue(providerForAll.supports(paramWithoutProvider, null));
assertFalse(providerForAll.supports(paramNotFile, null));
AnyOsFileValueProvider providerForDeclaredOnly = new AnyOsFileValueProvider(false);
assertTrue(providerForDeclaredOnly.supports(paramFileWithProvider, null));
assertFalse(providerForDeclaredOnly.supports(paramWithoutProvider, null));
assertFalse(providerForDeclaredOnly.supports(paramNotFile, null));
}