我写了我的java代码
if(x !=null){
// Do something
}
else {
// Do something
}
然后声纳Qube违反了规定。是否真的需要混淆三元的规则?
答案 0 :(得分:5)
根据您提供的reference link,规则规定:
在三元表达式中避免测试中的否定。例如,改写:"(x!= y)?差异:相同" as:"(x == y)?相同:差异"。一致使用此规则可使代码更易于阅读。此外,这解决了琐碎的排序问题,例如"错误情况是否先出现?"或"常见情况是先行?"。
这条规则被命名为“混乱的三元规则”可能有点令人困惑。因为你拥有的是一个常规的if-else结构,而不是一个三元表达式。但是,由于?:
可以被认为是if-else语句的简写,因此您也可以在此处应用规则。
有意义吗?就个人而言,我认为绝对。但是,如果它不适用于您(或您公司的)编码风格,因此,您会遇到很多违规行为,我宁愿删除或修改规则。正如参考文献所说:一致性很重要。
答案 1 :(得分:0)
这是必需的,因为它不必要地造成乍看之下的混乱。
例如
if(reporters username is not oliver)
say it's stackoverflow's concern
else
say it's oliver's concern