Java Lambdas: Función Predicate

Breve explicación

La función Predicate<T> es una interfaz funcional en Java que acepta un argumento de tipo T y devuelve un valor booleano (true o false). Se utiliza para evaluar una condición o realizar una prueba sobre el valor dado. El método funcional de Predicate es test(T t).

Ejemplo 1: Versión completa del cuerpo de la función Lambda
Java
package org.example.tinajero;

import java.util.function.Predicate;

public class LambdaPredicateExample {

    public static void main(String[] args) {
    	
        /*
         * 🛠️ Predicate
         * 💡 Recibe un valor de tipo T y retorna un booleano (true o false).
         */

        // Creamos un Predicate que evalúa si un número es mayor que 10
        Predicate<Integer> isGreaterThanTen = (number) -> {
            // Cuerpo completo: retorna true si el número es mayor que 10
            return number > 10;
        };

        // Usamos el Predicate para probar con el número 15
        System.out.println("¿15 es mayor que 10? " + isGreaterThanTen.test(15));

        // Creamos otro Predicate que evalúa si una cadena no está vacía
        Predicate<String> isNotEmpty = (str) -> {
            // Retorna true si la cadena no está vacía
            return !str.isEmpty();
        };

        // Aplicamos el Predicate para verificar si la cadena "Hola" no está vacía
        System.out.println("¿'Hola' no está vacía? " + isNotEmpty.test("Hola"));
    }
    
}

Ejemplo 2: Reducción de la expresión Lambda
Java
package org.example.tinajero;

import java.util.function.Predicate;

public class LambdaPredicateExampleSimplified {

    public static void main(String[] args) {
    	
        /*
         * 🛠️ Predicate
         * 💡 Recibe un valor de tipo T y retorna un booleano (true o false).
         */

        // Versión simplificada del Predicate que evalúa si un número es mayor que 10
        Predicate<Integer> isGreaterThanTen = number -> number > 10;

        // Ejecutamos el Predicate para probar con el número 8
        System.out.println("¿8 es mayor que 10? " + isGreaterThanTen.test(8));

        // Versión simplificada del Predicate que evalúa si una cadena está vacía
        Predicate<String> isEmpty = str -> str.isEmpty();

        // Usamos el Predicate para verificar si la cadena vacía está vacía
        System.out.println("¿'' está vacía? " + isEmpty.test(""));
    }
    
}