Expresiones Lambda en Java

Para empezar, las expresiones Lambda son funciones escritas en Java que son utilizadas en los métodos como parámetros del tipo objectos. Al principio, solíamos definir funciones en Java solo en métodos, pero ahora podemos usarlas dentro de cuerpos de métodos.

Interfaces Funcionales

Se puede utilizar una expresión lambda donde utilicemos una Interface Funcional. Las Interfaces Funcionales en Java son aquellas interfaces que solo tienen un método declarado y ser implementado, como las interfaces Runnable o Comparator.

Cuando cambiemos el código de la forma tradicional de codificación para utilizar Lambdas, siempre debemos seguir algunos pasos importantes.

Pasos para utilizar Expresiones Lambda:

Paso 1: En el código Java que tenga escrito, elimine las declaraciones y escriba los nombres de referencia. Por lo tanto, cambie algo como esto:

A algo como esto:

Paso 2: Elimine los paréntesis, agregue el símbolo de lambda -> y elimine la palabra return:

Las expresiones Lambda solo se refieren al cuerpo de la función, NO con el nombre de la función.

También podemos usar expresiones Lambda donde quiera que hayamos utilizado funciones anónimas. Podemos usarlo también en una nueva clase Thread (aquí, se esta utilizando en lugar de una interface Runnable).

Además, en Java 8, se realizaron cambios en algunas interfaces para introducir métodos que admitan expresiones lambda. Por ejemplo:

  • Collections.sort(lambda)
  • List.sort(lambda)
  • Iterable.forEach(lambda)
  • List.replaceAll(lambda)
  • Collections.removeIf(lambda)

Estos métodos fueron creados en Java 8 con la introducción de algunos otros conceptos.

Métodos Default

Los métodos Default fueron introducidos en las interfaces en Java 8 conde la implementación por defecto es proporcionada. Cualquier clase que implemente la interface que no proporcione una implementación, utiliza el método Default.

Podemos utilizar las expresiones lambda en un bucle for de la siguiente forma:

El uso de las expresiones lambda en los bucles for significará que son iteradores internos, ya que hay una llamada al método que será uniforme para todos los elementos de la lista.

Funciones de orden superior

También podemos volver a escribir expresiones lambda de una manera más adecuada:

Referencia e métodos utilizando referencia de acceso directo

Static Imports

También se pueden utilizar static imports para re escribir el código:

Entonces, si comparamos el código tradicional y el código anterior, podemos ver cuánto código repetitivo se ha eliminado.

A continuación se muestra un ejemplo simple para usar las expresiones lambda.


Este artículo esta basado en Don’t Fear the Lambda

Java: Uso de las expresiones Lambda
Si te gusto, comparte ...Email this to someone
email
Share on Facebook
Facebook
Tweet about this on Twitter
Twitter
Share on LinkedIn
Linkedin
Share on Google+
Google+
Etiquetado en:        

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Facebook
A %d blogueros les gusta esto: