Sobes.tech
Middle

¿Qué son las expresiones lambda en Java?

sobes.tech AI

Respuesta de la IA

La expresión lambda en Java es una función anónima. Permite tratar la funcionalidad como un argumento de método o como código como datos.

Características principales:

  • Anónima: No tiene nombre.
  • Interfaz funcional: La expresión lambda siempre está relacionada con una interfaz funcional (interfaz con un único método abstracto).
  • Sintaxis: (parámetros) -> { cuerpo }

Ejemplo de uso con la interfaz funcional Consumer:

import java.util.function.Consumer;

// La interfaz funcional Consumer<T> tiene un método abstracto accept(T t)
Consumer<String> saludo = (nombre) -> {
    System.out.println("Hola, " + nombre);
};

saludo.accept("Mundo"); // Salida: Hola, Mundo

Ejemplo de uso con la interfaz Runnable:

// La interfaz Runnable tiene un método abstracto run()
Runnable tarea = () -> {
    System.out.println("La tarea se ejecuta en un hilo separado");
};

new Thread(tarea).start(); // Inicia la tarea en un nuevo hilo

Variantes de sintaxis:

  • Sin parámetros: () -> { System.out.println("Hola"); }
  • Un parámetro sin paréntesis: nombre -> System.out.println("Hola, " + nombre)
  • Varios parámetros con paréntesis y tipos: (int a, int b) -> { return a + b; }
  • Varios parámetros sin tipos (tipo inferido): (a, b) -> a + b
  • Cuerpo de una sola línea sin return: (a, b) -> a + b
  • Cuerpo de varias líneas con llaves y return (si es necesario): (a, b) -> { int suma = a + b; return suma; }

Las expresiones lambda hacen que el código sea más compacto, legible y permiten usar programación funcional en Java.