【问题标题】:Sonar violation声纳违规
【发布时间】:2017-05-14 19:33:22
【问题描述】:
public Integer getMaxCount(String id,String type) {
    String maxCount ="SELECT MAX(ID) AS COUNT FROM STUDENT";
    try {
        return queryForObject(
            maxCount, 
            new Object[]{id,type}, 
            (rs, i) -> {return rs.getInt(COUNT);},
            "maxCount"
        );
    } catch (EmptyResultDataAccessException ex) {
        LOG.error(ex);
        return 9999;
    }
}

如何解决上述代码块的声纳违规问题。

Lambda 应该替换为方法引用

仅包含一个语句的 Lambda 不应将此语句嵌套在块中

【问题讨论】:

    标签: java sonarqube sonarlint


    【解决方案1】:

    这些是:

    两个页面都包含有关如何修复代码的示例。

    x -> System.out.println(x+1)
    (a, b) -> a+b    //For return statement, the return keyword should also be dropped
    

    【讨论】:

      【解决方案2】:

      你真的不需要在这里阻止。您可以使用以下方法返回值:

      (rs, i) -> rs.getInt(COUNT)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-07-19
        • 2011-09-12
        • 2014-05-17
        • 1970-01-01
        • 2021-05-31
        • 2013-09-02
        • 2023-04-04
        相关资源
        最近更新 更多