Mam następującą logikę;SonarQube podając nieużywany problem z metodą prywatną dla użycia lambda
..
if(list.stream()
.filter(MyClass::isEnabled)
.filter(this::isActive)
.count() > 0) {
//do smth
}
..
private boolean isActive(MyClass obj) {
return bool;
}
Jak widać, isActive
metoda jest wykorzystywana w strukturze strumienia, ale kiedy budować tę klasę na Jenkins, mam niewykorzystaną prywatną emisję metodę z SonarQube, to mówi, należy usunąć tę nadmiarową sposób prywatny. Czy to błąd? Jeśli nie, dlaczego nie uwzględnili logiki lambda w swojej strukturze analizy?
Jedynym rozwiązaniem jest oczywiście to zrobić;
.filter(obj -> isActive(obj))
, ale niszczy jednolitość, a nawet czytelność (imo).
Dziwne. Lambda wydaje się być w porządku, ponieważ wydaje się akceptować 'MyClass :: isEnabled', która jest referencją do metody. Spróbuj trasy 'className :: instanceMethod', gdzie' className' jest nazwą klasy, w której zdefiniowano 'isActive', czyli' instanceMethod = isActive'. –