Ho la seguente logica;SonarQube che emette un problema di metodo privato non utilizzato per l'utilizzo lambda
..
if(list.stream()
.filter(MyClass::isEnabled)
.filter(this::isActive)
.count() > 0) {
//do smth
}
..
private boolean isActive(MyClass obj) {
return bool;
}
Come si vede, isActive
metodo viene utilizzato nella struttura di flusso, ma quando ho costruire questa classe su Jenkins, ottengo la questione metodo privato inutilizzato da SonarQube, si dice che si dovrebbe cancellare questo metodo privato ridondante. è un insetto? In caso negativo, perché non hanno ancora incluso la logica lambda nella loro struttura di analisi?
L'unica soluzione è, ovviamente, fare questo;
.filter(obj -> isActive(obj))
, ma distrugge l'uniformità e persino la leggibilità (imo).
Strano. Lambdas sembra essere ok perché sembra accettare 'MyClass :: isEnabled', che è un riferimento al metodo. Prova la rotta 'className :: instanceMethod' dove' className' è il nome della classe in cui 'isActive', cioè' instanceMethod = isActive' è definito. –