lunes, 19 de octubre de 2015

EXPRESIONES LAMBDA EN JAVA 8

EXPRESIONES LAMBDA EN JAVA 8

INTRODUCCION

En lenguajes orientados a objetos, la clave te todo es el objeto, pero sucede lo contrario en los lenguajes de programación funcionales donde son éstas las donde recaen toda la importancia, en ellas se pueden pasar alrededor como si fueran variables esto se ve en Haskell, javascript y otros lenguajes funcionales. Los lenguajes funcionales tienen otras construcciones que no están fácilmente disponibles en los lenguajes orientados a objetos como son las expresiones lambda.

Expresión lambda no era parte de las versiones anteriores de Java, se intentaba simular con normalmente a través del uso de la clase anónima que no era nada elegante. Con la introducción de Lambda Expression en Java 8 podremos hacer que Java se comporte también como un lenguaje funcional. Por lo tanto, la introducción de expresiones lambda en Java 8 en una forma de puente con el lenguaje de programación funcional.

Las expresiones lambda, que normalmente las conocemos como “la función anónima”, es una función sin nombre. Es un atajo que le permite declarar un método en el que se va a utilizar, sin especificar el nombre del método, el tipo de cambio ni el acceso. Le permite tratar el código como los datos y usar funciones como argumentos de método.

¿Cual es la importancia de las Expresiones Lambda?


Con la introducción de las expresiones lambda en java se puedan aprovechar los beneficios del lenguaje funcional dentro de un lenguaje orientado a objetos. Las expresiones lambda proporcionan un medio para escribir códigos claros y concisos con el uso de expresiones.

Ejemplos

Sintaxis

(Argumento) -> (cuerpo)
– Donde puede haber cero o más argumentos, El token “flecha” (->) es el operador lambda java y (cuerpo) contiene una o más línea de códigos que se ejecutan cuando se llama la función.

Ejemplo de Uso

(Int a, int b) -> a * b

Los argumentos de la expresión son los valores enteros A y B que sería utilizado por la expresión para devolver la salida de la operación de multiplicación.

(Persona p) -> {p.getAge return ();}

Se toma una persona objeto como argumento, mientras que la expresión devuelve el valor del método getAge () llamado en el objeto.

Antes de Java 8, los códigos para manejar “EventListener” se escribían normalmente con la clase anónima

btnOk.setOnAction (newEventHandler () {
@ Override
public void handle (ActionEvent e) {
/ / código manejador del evento del botón
}
});

Con las expresiones lambda, el código del EventListener se puede hacer mucho más elegante, con menos líneas de código, veamos cómo:

btnOk.setOnAction (e -> {
/ / códigos para manejar eventos de botón se escribirían aquí
});


REF
 http://docs.oracle.com/javase/tutorial/java/javaOO/lambdaexpressions.html

No hay comentarios:

Publicar un comentario