Spring的ApplicationContext.getBean()方法可以返回null。
例如:Why is applicationContext.getBean(beanName) returning null, when it clearly exists?
但根据声纳,它永远不会返回null。声纳抱怨-改变这个条件,使它不总是评估为假。
下面是示例代码。
if (context.getBean(myClazz.class) != null) { // Sonar warning here
字符串
Sonar或getBean方法永远不会返回null的情况是否为假阳性?
如果这是假阳性,我能不能绕过这个警告?
1条答案
按热度按时间qacovj5a1#
Sonar标记null检查是正确的。因为如果没有找到给定类型的bean,
context.getBean(beanclass)
将抛出NoSuchBeanDefinitionException
。所以null检查是没有用的。getBean(beanClass)方法来自BeanFactory,它记录了这种行为。