java - 如何消除圈复杂度

标签 java sonarlint

我从下面的代码中得到了循环复杂度(此方法“mapRow”的循环复杂度为 13,大于 10 授权):

public RedemptionReport mapRow(ResultSet rs, int row) throws SQLException {        
        RedemptionReport redemptionReport = new RedemptionReport();
        redemptionReport.setRedeemDate(rs.getString(1));
        redemptionReport.setCashierID(rs.getString(2) != null? rs.getString(2) : "");
        redemptionReport.setTillNo(rs.getString(3) != null? rs.getString(3) : "");
        redemptionReport.setReferenceNumber(rs.getString(4) != null? rs.getString(4) : "");
        redemptionReport.setTransactionNumber(rs.getString(5) != null? rs.getString(5) : "");
        redemptionReport.setRedemptionAmount(rs.getString(6) != null? rs.getString(6) : "0");
        redemptionReport.setNetBillValues(rs.getString(7) != null? rs.getString(7) : "0");
        redemptionReport.setStoreCode(rs.getString(8) != null? rs.getString(8) : "");
        redemptionReport.setCardNumber(rs.getString(9) != null? rs.getString(9) : "");
        redemptionReport.setCardType(rs.getString(10) != null? rs.getString(10) : "");
        redemptionReport.setStoreDesc(rs.getString(11) != null? rs.getString(11) : "");
        redemptionReport.setZoneDesc(rs.getString(12) != null? rs.getString(12) : "");
        redemptionReport.setMobileNo(rs.getString(13) != null? rs.getString(13) : "");
        redemptionReport.setSchemeName(rs.getString(14));
        return redemptionReport;
    }

如何从上面的代码中消除这种复杂性?

最佳答案

创建一个封装三元运算符的方法,例如:

private String get(String val, String def) {
    return val != null ? val : def
}

或者更简单:

private String get(String val) {
    return val != null ? val : ""
}

关于java - 如何消除圈复杂度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37914939/

相关文章:

java - Debian linux Tomcat 8 全新安装在端口 8080 上没有响应

java - 方法和字段名称不应仅因大小写而不同(squid :S1845) false positive

java - 多客户端/服务器。处理通讯

java - Java 类路径汇编如何工作?

java - 从Java中的文件读取错误

java android DateFormat 忽略修改后的语言环境设置

visual-studio-2019 - 如何根据 SonarLint for Visual Studio 的问题类型设置严重性?

android-studio - 从声纳分析中排除生成的类

java - 即使我们已经处理了语句,SonarLint 仍然显示阻塞错误,Connection closes in finally block

intellij-idea - 无法触发整个项目的 SonarLint 分析