Breve explicación
La función BiConsumer<T, U>
es una interfaz funcional en Java que acepta dos argumentos de tipos T
y U
, y no devuelve ningún resultado. Se utiliza comúnmente para realizar operaciones que necesitan trabajar con dos valores sin devolver nada. El método funcional de BiConsumer
es accept(T t, U u)
.
Ejemplo 1: Versión completa del cuerpo de la función Lambda
Java
package org.example.tinajero;
import java.util.function.BiConsumer;
public class LambdaBiConsumerExample {
public static void main(String[] args) {
/*
* 🛠️ BiConsumer
* 💡 Recibe dos valores y no retorna nada.
*/
// Creamos un BiConsumer que recibe un nombre y una edad, e imprime ambos
BiConsumer<String, Integer> printPersonInfo = (name, age) -> {
// Cuerpo completo de la función, usando declaraciones explícitas
System.out.println("Nombre: " + name);
System.out.println("Edad: " + age);
};
// Usamos el BiConsumer para imprimir la información de una persona
printPersonInfo.accept("Juan", 30);
// Creamos otro BiConsumer que recibe dos números y muestra su suma
BiConsumer<Integer, Integer> addAndPrint = (a, b) -> {
// Imprime la suma de los dos números
System.out.println("Suma: " + (a + b));
};
// Aplicamos el BiConsumer a los números 5 y 10
addAndPrint.accept(5, 10);
}
}
Ejemplo 2: Reducción de la expresión Lambda
Java
package org.example.tinajero;
import java.util.function.BiConsumer;
public class LambdaBiConsumerExampleSimplified {
public static void main(String[] args) {
/*
* 🛠️ BiConsumer
* 💡 Recibe dos valores y no retorna nada.
*/
// Versión simplificada del BiConsumer sin necesidad de tipos explícitos
BiConsumer<String, Integer> printPersonInfo = (name, age) -> System.out.println("Nombre: " + name + ", Edad: " + age);
// Ejecutamos el BiConsumer
printPersonInfo.accept("Ana", 25);
// Versión simplificada del BiConsumer que suma dos números
BiConsumer<Integer, Integer> addAndPrint = (a, b) -> System.out.println("Suma: " + (a + b));
// Aplicamos el BiConsumer a los números 7 y 3
addAndPrint.accept(7, 3);
}
}