Streams Iniciante

Use Predicate.not() para negar referências de método de forma limpa, em vez de escrever lambdas de encapsulamento.

✕ 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();
Viu um problema com este código? Nos avise.
👁

Negação mais limpa

Sem necessidade de envolver referências de método em lambdas apenas para negá-las.

🔗

Componível

Funciona com qualquer Predicate, permitindo encadeamentos limpos de predicados.

📖

Leitura natural

Predicate.not(String::isBlank) lê-se de forma natural.

Abordagem Antiga
Negação com lambda
Abordagem Moderna
Predicate.not()
Desde o JDK
11
Dificuldade
Iniciante
Predicate.not() para negação
Disponível

Disponível desde o JDK 11 (setembro de 2018)

Antes do Java 11, negar uma referência de método exigia envolvê-la em uma lambda. Predicate.not() permite negar qualquer predicado diretamente, mantendo o código legível e consistente com o estilo de referência de método em todo o pipeline do stream.

Compartilhar 𝕏 🦋 in