Breve explicación
La función Consumer<T>
es una interfaz funcional en Java que acepta un solo argumento de tipo T
y no devuelve ningún resultado. Se utiliza comúnmente cuando necesitamos ejecutar una operación sobre un objeto sin alterar su valor ni devolver un resultado. El método funcional de Consumer
es accept(T t)
.
Ejemplo 1: Versión completa del cuerpo de la función Lambda
Java
package org.example.tinajero;
import java.util.function.Consumer;
public class LambdaConsumerExample {
public static void main(String[] args) {
/*
* 🛠️ Consumer
* 💡 Recibe un valor y no retorna nada.
*/
// Creamos un Consumer que imprime el valor que recibe
Consumer<String> printMessage = (message) -> {
// Cuerpo completo de la función, usando una declaración explícita
System.out.println("Mensaje recibido: " + message);
};
// Usamos el Consumer para imprimir un mensaje
printMessage.accept("¡Hola desde Consumer Lambda!");
// Creamos otro Consumer que recibe un número y lo multiplica por 2
Consumer<Integer> multiplyByTwo = (number) -> {
// Imprime el número original y el resultado de multiplicarlo por 2
System.out.println("Número recibido: " + number);
System.out.println("Resultado de multiplicarlo por 2: " + (number * 2));
};
// Aplicamos el Consumer al número 5
multiplyByTwo.accept(5);
}
}
Ejemplo 2: Reducción de la expresión Lambda
Java
package org.example.tinajero;
import java.util.function.Consumer;
public class LambdaConsumerExampleSimplified{
public static void main(String[] args) {
/*
* 🛠️ Consumer
* 💡 Recibe un valor y no retorna nada.
*/
// Versión simplificada del Consumer sin necesidad de tipo explícito
Consumer<String> printMessage = message -> System.out.println("Mensaje recibido: " + message);
// Ejecutamos el Consumer
printMessage.accept("¡Hola desde la versión reducida de Consumer!");
// Versión simplificada del Consumer que multiplica el número por 2
Consumer<Integer> multiplyByTwo = number -> System.out.println("Resultado de multiplicar por 2: " + (number * 2));
// Aplicamos el Consumer al número 10
multiplyByTwo.accept(10);
}
}