Junior
¿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 (sin nombre) que implementa una interfaz funcional.
Características principales:
- No tienen nombre.
- Pueden tener parámetros.
- El cuerpo puede consistir en una sola expresión o en un bloque de instrucciones.
- No se especifica el tipo de valor de retorno (se infiere automáticamente).
- Son necesarias para la programación funcional y el trabajo con flujos (Streams API).
Sintaxis:
// Sin parámetros
() -> { // cuerpo }
// Con un parámetro (el tipo puede omitirse)
param -> expresión
// Con varios parámetros (el tipo puede omitirse, se requieren paréntesis)
(param1, param2) -> { // cuerpo }
Ejemplo de uso:
// Interfaz funcional (integrada)
import java.util.function.Consumer;
// Implementación con lambda
Consumer<String> printer = s -> System.out.println(s);
printer.accept("¡Hola mundo!");
// Uso en un método que recibe una interfaz funcional
import java.util.Arrays;
import java.util.List;
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
numbers.forEach(n -> System.out.println(n)); // forEach acepta un Consumer
Ventajas:
- Código más conciso.
- Mejor legibilidad (en casos simples).
- Posibilidad de usar programación funcional.
- Simplificación del trabajo con colecciones y multihilo.
Limitaciones:
- Los lambdas anidados o largos pueden ser difíciles de entender.
- No tienen estado (no pueden tener campos de instancia).