Sonar Qube说,Objects.inNull总是评估为错误,导致生产中的代码构建失败

问题描述

由于某种原因,声纳报告(客户端报告)以下Objects.isNull始终为false,从而禁用了生产升级。有人可以帮助我了解为什么客户声纳会发生这种情况以及如何解决吗?

Iterable<Sim> result = repository.findAllById(listimsi);
        
        if (Objects.isNull(result)) {  // Sonar thinks it always evaluates to false 

解决方法

result可能为,但不会为null,因此Objects.isNull()将永远不会返回true

如果在数据库中找不到数学数据,则hasNext()返回的每个false都会返回Iterator

虽然从技术上讲您可以创建自己的实现,但返回iterator()可能没有任何意义。

如果您确实想这样做并且有理由这样做,则可以在同一行中添加一条null注释来说明它,警告会消失。