首页 > 解决方案 > 在字符串比较中使用 == 而不是 equals 不会被 Sonar 捕获

问题描述

我有以下代码:

String s1 = "a";
    String s2 = "a";
    if (s1 == s2) {
        System.out.println("string not equal");
    }

当我使用 SonarLint 分析此代码时,它不会被它捕获。我希望这应该被以下规则抓住

squid:S1698-"==" 和 "!=" 当 "equals" 被覆盖时不应该使用

我在 Sonar Qube 7.0 的独立模式和连接模式下都检查了这一点。有人知道为什么声纳会这样吗?

- - - - - - - -编辑 - - - - - - - - -

同样的情况也发生在:

Integer x= 500;
Integer y= 500;
if (x==y){
            System.out.println("not equal");
        }

标签: javasonarqubesonarlintsonarlint-intellij

解决方案


推荐阅读