-
Notifications
You must be signed in to change notification settings - Fork 85
Open
Description
类路径:com.alibaba.spring.beans.factory.annotation.AbstractAnnotationBeanPostProcessor
方法:
private Class resolveInjectedType(Object bean, Field field) {
Type genericType = field.getGenericType();
if (genericType instanceof Class) { // Just a normal Class
return field.getType();
} else { // GenericType
return resolveTypeArgument(getTargetClass(bean), field.getDeclaringClass());
}
}
@nullable
public static Class resolveTypeArgument(Class clazz, Class genericIfc) {
ResolvableType resolvableType = ResolvableType.forClass(clazz).as(genericIfc);
if (!resolvableType.hasGenerics()) {
return null;
}
return getSingleGeneric(resolvableType);
}
resolveTypeArgument 遇到一个类有多个参数的时候,会导致报错;
建议resolveInjectedType返回类型为List<Class<?>> ,便于多个参数的情况下可以正常装到容器
Metadata
Metadata
Assignees
Labels
No labels