Подтвердить что ты не робот

SonarQube, предоставляющий неиспользуемый частный метод для использования лямбда

У меня есть следующая логика:

..
if(list.stream()
       .filter(MyClass::isEnabled)
       .filter(this::isActive)
       .count() > 0) {
    //do smth
}
..
private boolean isActive(MyClass obj) {
    return bool;
}

Как вы видите, в структуре потока используется метод isActive, но когда я создаю этот класс в Jenkins, я получаю неиспользуемый частный метод из SonarQube, он говорит, что вы должны удалить этот избыточный частный метод. Это ошибка? Если нет, то почему они еще не включили лямбда-логику в свою структуру анализа?

Единственное решение, очевидно, для этого:

.filter(obj -> isActive(obj)), но он разрушает однородность и даже читаемость (imo).

4b9b3361

Ответ 1

Это известная проблема анализатора JavaSararQube: https://jira.sonarsource.com/browse/SONARJAVA-583

Это связано с отсутствием семантического анализа для правильной обработки ссылки на метод (таким образом, определить, к какому методу относится этот:: isActive).