【问题标题】:How to fix sonar issues for Reduce the number of conditional operators (5) used in the expression (maximum allowed 3) in java如何解决减少 java 中表达式中使用的条件运算符(5)的数量(最多允许 3 个)的声纳问题
【发布时间】:2019-10-18 06:02:16
【问题描述】:
ObjectTest systemError = (ObjectTest ) o;
//New Code 
result &= Objects.equals(this.exp1, systemError.exp1);
result &= Objects.equals(this.exp2, systemError.exp2)  ;
result &= Objects.equals(this.exp3, systemError.exp3);
result &= Objects.equals(this.exp4, systemError.exp4);
result &= Objects.equals(this.exp5, systemError.exp5) ;
result &= Objects.equals(this.exp6, systemError.exp6);
return result;
//Old Code
return Objects.equals(this.exp, systemError.exp) &&
Objects.equals(this.exp1, systemError.exp1) &&
Objects.equals(this.exp2, systemError.exp2) &&
Objects.equals(this.exp3, systemError.exp3) &&
Objects.equals(this.exp4, systemError.exp4) &&
Objects.equals(this.exp5, systemError.exp5) &&
Objects.equals(this.exp6, systemError.exp6);

新代码是旧代码的解决方案吗?任何人都可以对此进行确认。

【问题讨论】:

    标签: java sonarqube


    【解决方案1】:

    请注意,a &= ba = a & b 相同,其结果与 a = a && b 实际用途相同(除了性能,无论a 的值如何,b 也将被评估以防万一a & b 的情况,而在a && b 的情况下,如果afalse,则不处理b

    在此基础上,如果您的新代码以result = Objects.equals(this.exp, systemError.exp); 开头并以return result; 结尾,您的新代码确实可以成为旧代码的解决方案

    如果您在理解它时仍有任何问题,请随时告诉我,我会尝试进一步详细说明我的解释。

    【讨论】:

    • 谢谢你的回答和解释我会接受的。
    猜你喜欢
    • 2021-12-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-03
    • 1970-01-01
    • 1970-01-01
    • 2020-06-08
    相关资源
    最近更新 更多