Нарушение сонара

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;
    }
}

Получение ниже нарушений сонара для приведенного выше блока кода, как исправить.

Лямбда-выражения должны быть заменены ссылками на методы.

Лямбды, содержащие только один оператор, не должны вкладывать этот оператор в блок.


person user1921479    schedule 14.05.2017    source источник


Ответы (2)


Это:

Обе страницы содержат примеры того, как исправить ваш код.

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

Блок здесь не нужен. Вы можете вернуть значение, используя это:

(rs, i) -> rs.getInt(COUNT)
person Gurwinder Singh    schedule 14.05.2017