Skip to content

AbstractAnnotationBeanPostProcessor无法装载含有多个参数的类问题 #48

@saaserp

Description

@saaserp

类路径: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

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions