Streams Początkujący

Używaj Predicate.not() do negowania referencji do metod bez pisania wrapperów lambda.

✕ Java 8
List<String> nonEmpty = list.stream()
    .filter(s -> !s.isBlank())
    .collect(Collectors.toList());
✓ Java 11+
List<String> nonEmpty = list.stream()
    .filter(Predicate.not(String::isBlank))
    .toList();
Widzisz problem z tym kodem? Daj nam znać.
👁

Czystsza negacja

Nie trzeba owijać referencji do metod w lambdy tylko po to, żeby je negować.

🔗

Kompozycyjny

Działa z dowolnym Predicate, umożliwiając czyste łańcuchy predykatów.

📖

Czyta się naturalnie

Predicate.not(String::isBlank) czyta się jak angielski.

Stare podejście
Negacja lambda
Nowoczesne podejście
Predicate.not()
Od JDK
11
Poziom trudności
Początkujący
Predicate.not() do negacji
Dostępne

Dostępne od JDK 11 (wrzesień 2018)

Przed Java 11 negowanie referencji do metody wymagało owinięcia jej w lambdę. Predicate.not() pozwala negować dowolny predykat bezpośrednio, zachowując czytelność i spójność z stylem referencji do metod w potoku strumienia.