Streams Principiante

Usa Predicate.not() para negar referencias a métodos de forma limpia en lugar de escribir lambdas envolventes.

✕ 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();
¿Ves un problema con este código? Cuéntanos.
👁

Negación más limpia

No es necesario envolver referencias a métodos en lambdas solo para negarlas.

🔗

Componible

Funciona con cualquier Predicate, permitiendo cadenas de predicados limpias.

📖

Se lee naturalmente

Predicate.not(String::isBlank) se lee como lenguaje natural.

Enfoque Antiguo
Negación con lambda
Enfoque Moderno
Predicate.not()
Desde JDK
11
Dificultad
Principiante
Predicate.not() para negación
Disponible

Disponible desde JDK 11 (septiembre 2018).

Antes de Java 11, negar una referencia a método requería envolverla en una lambda. Predicate.not() permite negar cualquier predicado directamente, manteniendo el código legible y consistente con el estilo de referencias a métodos en todo el pipeline del stream.

Compartir 𝕏 🦋 in