diff --git a/spring-beans/src/main/java/org/springframework/beans/factory/support/AbstractAutowireCapableBeanFactory.java b/spring-beans/src/main/java/org/springframework/beans/factory/support/AbstractAutowireCapableBeanFactory.java index f0f519e2a1..3b4dfcd83d 100644 --- a/spring-beans/src/main/java/org/springframework/beans/factory/support/AbstractAutowireCapableBeanFactory.java +++ b/spring-beans/src/main/java/org/springframework/beans/factory/support/AbstractAutowireCapableBeanFactory.java @@ -582,11 +582,10 @@ public abstract class AbstractAutowireCapableBeanFactory extends AbstractBeanFac for (BeanPostProcessor bp : getBeanPostProcessors()) { if (bp instanceof SmartInstantiationAwareBeanPostProcessor) { SmartInstantiationAwareBeanPostProcessor ibp = (SmartInstantiationAwareBeanPostProcessor) bp; - Class predictedType = ibp.predictBeanType(beanClass, beanName); - if (predictedType != null && (typesToMatch.length > 1 || - (typesToMatch.length > 0 && !FactoryBean.class.equals(typesToMatch[0])) || - FactoryBean.class.isAssignableFrom(predictedType))) { - return predictedType; + Class predicted = ibp.predictBeanType(beanClass, beanName); + if (predicted != null && (typesToMatch.length != 1 || !FactoryBean.class.equals(typesToMatch[0]) || + FactoryBean.class.isAssignableFrom(predicted))) { + return predicted; } } }