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(""));
}
}