Cómo utilizar las expresiones lambda en java 8

Java 8 introduce una nueva característica que en algunos aspectos es similar a las clases anónimas, pero con una sintaxis más concisa. Más específicamente, una expresión lambda permite crear una clase anónima que implementa un tipo específico de interfaz de llamada interfaz funcional- que tiene una y sólo una método abstracto.

Video: Java 8: Interfaces Funcionales

los Pelota interfaz cumple la definición:

Bola interfaz de golpe {void () -}

Aquí el único método abstracto es el golpear método.

Video: Expresiones Lambda con Java 8 en NetBeans 8

Una interfaz funcional puede contener métodos adicionales, siempre que no son abstractas. Hasta 8 de Java, esto no fue posible debido a una interfaz podría contener solamente métodos abstractos. Sin embargo, en Java 8 puede crear métodos predeterminados que proporcionan una implementación por defecto. Así, una interfaz funcional puede contener uno o más métodos predeterminados, pero sólo puede contener un método abstracto.

Una expresión lambda es una forma concisa para crear una clase anónima que implementa una interfaz funcional. En lugar de proporcionar una declaración de método formal que incluye el tipo de retorno, nombre del método, los tipos de parámetros, y el cuerpo del método, sólo tiene que definir los tipos de parámetros y el cuerpo del método. El compilador de Java infiere el resto en función del contexto en el que se utiliza la expresión lambda.

Los tipos de parámetros se separan del cuerpo del método por un nuevo operador, llamado el operador de flecha, que consta de un guión seguido de un símbolo de mayor que. He aquí un ejemplo que implementa el Pelota interfaz:

() -gt; {System.out.println ("Llegar a ella!") -}

Aquí, la expresión lambda implementa una interfaz funcional cuyo método sola no acepta parámetros. Cuando se llama al método, el texto “Le pegó a él!” se imprime.

Video: Expresiones Lambda en Java Parte 1

Se puede utilizar una expresión lambda en cualquier lugar se puede utilizar una expresión normal de Java. Vamos a usar ellos la mayor parte de las instrucciones de asignación o como parámetros pasados. La única restricción es que se puede utilizar una expresión lambda sólo en un contexto que requiere una instancia de una interfaz funcional. Por ejemplo, aquí hay un programa completo que utiliza una expresión lambda para implementar el Pelota interfaz:

LambdaBall public class {void main (String [] args) {public static bola b = () -gt; {System.out.println ("Llegar a ella!") - -b.hit} () - Interfaz} {bola golpe void () -}}

La sintaxis general de una expresión lambda es la siguiente:

(Parámetros) -gt; expresión

o esto:

(Parámetros) -gt; { declaración- ... }

Si utiliza una expresión, no se requiere un punto y coma. Si utiliza una o más declaraciones, las declaraciones deben estar encerradas entre llaves y se requiere un punto y coma al final de cada declaración.

No hay que olvidar que la declaración en la que se utiliza la expresión lambda misma debe terminar con un punto y coma. Por lo tanto, la expresión lambda en el ejemplo anterior tiene dos punto y coma en las proximidades:

La bola b = () -gt; {System.out.println ("Llegar a ella!") -} -

El primer punto y coma marca el final de la instrucción que llama System.out.println- el segundo punto y coma marca el final de la instrucción de asignación que asigna la expresión lambda a la variable segundo.

Artículos Relacionados