Want to create interactive content? It’s easy in Genially!

Get started free

Expresiones Lambda en Java

Paula Betancourt

Created on October 7, 2025

Start designing with a free template

Discover more than 1500 professional designs like these:

Smart Presentation

Practical Presentation

Essential Presentation

Akihabara Presentation

Flow Presentation

Dynamic Visual Presentation

Pastel Color Presentation

Transcript

wow

Expresiones Lambda en Java

Paula Andrea Betancourt Matamoros

go!

Interfaces funcionales

Una interfaz funcional es una interfaz que tiene exactamente un único método abstracto. Este método define el comportamiento que será implementado por una expresión lambda o una referencia a método. En Java, las interfaces funcionales son fundamentales para habilitar el uso de lambdas.

+ EXTRA

La anotación @FunctionalInterface se puede usar (aunque es opcional) para indicar explícitamente que una interfaz es funcional.

No es estrictamente necesaria, pero es una buena práctica usarla para evitar errores

+ EJEMPLO

Tipos de metodos en las interfaces

Abstractos

Las interfaces son una especie de “contrato” que define el comportamiento de las clases que las implementen. Este contrato contiene “cláusulas obligatorias” y “cláusulas opcionales “.

Obligan a implementar

Default

Implementación Opcional que se hereda

Static

Llamados desde la interfaz

Privados

Helpers (metodos de ayuda) internos para la interfaz

Interfaces
Interfaces funcionales

Interfaces

Funcionan de manera similar a una clase padre

Clases anónimas con interfaces

Una clase anónima es una clase sin nombre que se crea en el momento en que se necesita una implementación rápida de una interfaz. Cuando implementamos una interfaz, normalmente una clase debe “cumplir el contrato” implementando todos sus métodos. Pero si solo se va a usar una vez, podemos evitar crear una clase completa y usar una clase anónima. En ese caso:

  • La interfaz se instancia directamente.
  • Dentro de las llaves {} se define el comportamiento de sus métodos.
  • No tiene nombre, por eso no se puede volver a instanciar.

Clases anónimas con interfaces

Se declara e instancia al mismo tiempo, y solo se puede usar una vez (no se puede volver a crear otra instancia igual).

🚀

NACE

Clases anónimas en Java

Se instancia

¿Como crear objetos temporales para usar en el momento?

ACTUA RAPIDO

Se ejecuta una sola vez

+ info

MUERE

💥

No se puede volver a llamar

¿Cuando usarlas?

Se usan cuando necesitas probar una idea o comportamiento sin crear una clase nueva.

Se usan cuando necesitas algo que funcione una sola vez y no vale la pena crear una clase completa.

Ayudan a crear algo temporal que haga una tarea concreta y luego no se vuelva a usar..

Cuando vas a sobrescribir un método una sola vez.

¿Que es una expresión lambda en java?

Una expresión lambda es una forma breve de escribir una acción o comportamiento en Java sin crear una clase o método completo. Permite expresar de manera directa lo que el programa debe hacer, haciendo el código más simple y fácil de leer. Están pensadas para trabajar con interfaces funcionales.

""Se usan principalmente cuando se necesita definir comportamientos de forma rápida y sencilla, sin crear clases anónimas o clases adicionales"

Sintaxis de una expresion lambda

(parametros) -> expresion

Sintaxis de una expresion lambda

(parametros) -> { // bloque de codigo }

Sintaxis de una expresion lambda

(parámetro1, parámetro2) -> expresión

Sintaxis de una expresion lambda

((parámetro1, parámetro2) -> {//bloque de código}

Interfaces Predefinidas

Java permite usar lambdas siempre que se trate de una interfaz funcional, es decir, una interfaz que tiene un único método abstracto. Muchas interfaces funcionales predefinidas se encuentran en el paquete java.util.function. Algunas de las interfaces funcionales más comunes son:

  • Predicate<T>: Recibe un argumento y devuelve un booleano (test)
  • Function<T, R>: Recibe un argumento de tipo T y devuelve un resultado de tipo R (apply)
  • Consumer<T>: Recibe un argumento de tipo T y no devuelve nada (accept)

Predicate

Un Predicate es una interfaz funcional que toma un valor (cualquier dato) y devuelve true o false.

Ejemplo 1

Ejemplo 2

Function

Function es una interfaz funcional que toma un argumento de tipo T y devuelve un resultado de tipo R.

Ejemplo 1

Ejemplo 2

Customer

Consumer es una interfaz funcional que toma un argumento de tipo T y no devuelve ningún resultado

Ejemplo 1

Ejemplo 2

Cuando la expresión lambda es muy larga o contiene lógica complicada, puede volverse difícil de leer y entender, perdiendo la claridad que se busca al usarla.

Las expresiones lambda permiten escribir menos código al eliminar clases anónimas innecesarias y simplificar la sintaxis. Esto hace que el código sea más conciso y fácil de leer, especialmente cuando se trabaja con interfaces funcionales.

+ info

¿En que parte del mvp debe ir?

MODELO

Las lambdas pueden usarse en cualquier capa del patrón MVP: en la vista para manejar acciones, en el modelo para trabajar con datos y en el presentador para procesar información. No pertenecen a una capa fija, sino que se usan donde simplifiquen el código.

PRESENTADOR

VISTA

¿Preguntas?

Una empresa necesita un sistema para filtrar empleados según distintos criterios: Edad mayor de 30 años Salario mayor de 2.000.000 Cargo igual a "Ingeniero" Antes se usaban clases anónimas, pero el código era largo y difícil de mantener. Ahora se propone usar expresiones lambda para definir los filtros de forma más clara y flexible dentro del modelo MVP.

Abstractos

Estos metodos obligan a que cada clase que implementen la interfaz esten obligados a usar este metodo.

¿Que son las clases anonimas en Java?

Es una clase sin nombre que se crea y usa al instante.

Se utiliza cuando necesitas modificar o extender una clase solo una vez.

No se puede reutilizar ni llamar más adelante.

Se declara e instancia en una sola línea.

Default

Métodos que describen un método que se puede o no usar. (No es obligatorio)

Static

Solo se pueden llamar desde la propia interfaz

Privados

Sirven para compartir código entre otros métodos default o static dentro de la misma interfaz, tambien son denominados metodos helpers.