真的需要在Sonar Qube中混淆三元规则吗?

use*_*323 2 java sonarqube

我写了我的java代码

if(x !=null){
    // Do something
}
else {
    // Do something
}
Run Code Online (Sandbox Code Playgroud)

然后声纳Qube违反了.是否真的需要混淆三元的规则?

bea*_*u13 5

根据您提供的参考链接,规则规定:

在三元表达式中避免测试中的否定.例如,改写:"(x!= y)?diff:same"as:"(x == y)?same:diff".一致使用此规则可使代码更易于阅读.此外,这解决了琐碎的排序问题,例如"错误情况是否先出现?" 或"普通情况先行?".

将规则命名为"混乱的三元规则"可能有点令人困惑,因为你所拥有的是一个常规的if-else结构,而不是一个三元表达式.但是,由于?:可以将其视为if-else语句的简写,您也可以在此处应用规则.

这有道理吗?就个人而言,我认为绝对.但是,如果它不适用于您(或您公司的)编码风格,因此您会遇到很多违规行为,我宁愿删除或修改规则.正如参考文献所说:一致性很重要.