我使用的ConditionalConverter应该与
@Override
public boolean matches(TypeDescriptor sourceType, TypeDescriptor targetType) {
return sourceType.hasAnnotation(Document.class);
}但是在这里,sourceType.hasAnnotation(Document.class)返回false,即使提供的类是:
@Document
class Person {}如果我看看背后是什么,从类中创建的TypeDescriptor没有注意到注释:
public static TypeDescriptor valueOf(Class<?> type) {
if (type == null) {
type = Object.class;
}
TypeDescriptor desc = commonTypesCache.get(type);
return (desc != null ? desc : new TypeDescriptor(ResolvableType.forClass(type), null, null));
}有关更多信息,可通过org.springframework.core.convert.ConversionService.canConvert(Class sourceType的targetType类调用转换器。)
Spring中的代码来自4.2.8.RELEASE
不知道如何让我的转换器工作。
发布于 2017-01-31 18:13:42
考虑到这个问题,我最终使用底层的类来测试注解的存在。
@Override
public boolean matches(TypeDescriptor sourceType, TypeDescriptor targetType) {
return sourceType.getObjectType().isAnnotationPresent(Document.class);
}https://stackoverflow.com/questions/41941518
复制相似问题