// Remove all annotated-classes that have been registered
Iterator<Class<?>> iterator = new ArrayList<Class<?>>(asList(annotatedClasses)).iterator();
while (iterator.hasNext()) {
Class<?> annotatedClass = iterator.next();
if (isPresentBean(registry, annotatedClass)) {
iterator.remove();
}
}
但是实际上 Iterator 在做无用功
在 testRegisterBeans() 中 重复向 registerBeans
提示
INFO support.DefaultListableBeanFactory - Overriding bean definition for bean 'annotatedBeanDefinitionRegistryUtilsTest': replacing [Generic bean: class [com.alibaba.spring.util.AnnotatedBeanDefinitionRegistryUtilsTest]; scope=singleton; abstract=false; lazyInit=false; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=null; factoryMethodName=null; initMethodName=null; destroyMethodName=null] with [Generic bean: class [com.alibaba.spring.util.AnnotatedBeanDefinitionRegistryUtilsTest]; scope=singleton; abstract=false; lazyInit=false; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=null; factoryMethodName=null; initMethodName=null; destroyMethodName=null]
在registerBeans(BeanDefinitionRegistry registry, Class<?>... annotatedClasses) 方法中 本意是移除已经注册过的 annotatedClass
但是实际上 Iterator 在做无用功
在
testRegisterBeans()
中 重复向 registerBeans提示
在 debug中![image](https://user-images.githubusercontent.com/21981606/72121367-cc5cd100-3395-11ea-9806-a394eeca8684.png)
reader.register(annotatedClasses);
仍然注册了重复的bean ,Iterator<Class<?>> iterator = new ArrayList<Class<?>>(asList(annotatedClasses)).iterator();
然后iterator.remove();
是无意义的