Cómo utilizar expresiones lambda en java 8

Java 8 introduce una nueva característica que en cierto modo 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 uno y sólo un método abstracto.

los Bola interfaz cumple esa definición:

interfaz Bola {void hit () -}

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

Una interfaz funcional puede contener métodos adicionales, siempre y cuando no son abstractos. Hasta Java 8, 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 manera 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, tipos de parámetros, y cuerpo del método, sólo tiene que definir los tipos de parámetros y el cuerpo del método. El compilador 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 operador de flecha, que consiste en un guión seguido de un símbolo mayor que. He aquí un ejemplo que implementa el Bola Interfaz:

() -> {System.out.println ("Se dispara!") -}

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

Puede utilizar una expresión lambda cualquier lugar se puede utilizar una expresión normal de Java. Usted se utilicen más en 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 la Bola Interfaz:

public class LambdaBall {main (String [] args) {static void públicas bola de b = () -> {System.out.println ("Le pegó a él!") -} -b.hit () -} interfaz Bola {void golpear()-}}

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

(parámetros) -> expresión

o este:

(parámetros) -> { declaración- ... }

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

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 puntos y comas en las proximidades:

Bola b = () -> {System.out.println ("Le pegó a él!") -} -

El primer punto y coma marca el final de la declaració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 b.




» » » » Cómo utilizar expresiones lambda en java 8