style="display:inline-block;width:728px;height:90px"
data-ad-client="ca-pub-5164839828746352"
data-ad-slot="7563230308">

blog de echan

Interfaces funcionales en Java 8

De lo más relevante en ésta versión es la inclusión de lambdas y junto con ello nuevos conceptos como las interfaces funcionales.

Podemos decir que una interfaz se considera funcional cuando tiene un método abstracto sin implementación. La intención es crear un contrato o una “forma” de como será una expresión lambda para que el compilador cuente con información suficiente al momento de aplicarla, dicho de otra forma, es el tipo de datos de la expresión lambda. ¿Por qué?. Bueno, en Java las expresiones lambda son como cualquier otro objeto y como tal, también necesitan un tipo de datos. Por ejemplo, el siguiente programa traduce e imprime una palabra de español a inglés usando lambdas.

//interfaz funcional
interface Traductor {
   String traducir(String palabra);
}

public class Main {
    public static void main(String[] args) {
        // Implementacion de Traductor usando una expresion lambda
        Traductor traducirIngles = (p) -> "hola".equals(p) ?  "hello" : "WHAT?";

        System.out.println( traducirIngles.traducir("hola") ); // imprime hello

JDK 8 y el proyecto Lambda

El próximo año Oracle planea liberar la versión 8 del JDK, que entre las novedades incluidas está el proyecto lambda. Dicho proyecto trae un par de características ampliamente usadas en el mundo de la programación funcional: los closures (clausuras) y las funciones anónimas.

En este post repasamos éstos conceptos y mostramos como sería la versión que Oracle esta cocinando, y aunque todavia falta un tiempo para la versión final y pueden haber cambios, las bases ya estan puestas y podemos darnos una idea.

El propósito de las funciones anónimas( también conocidas como expresiones lambda ) es muy simple: crear y usar funciones sin necesidad de asignarles un nombre o identificador, de manera que puedan ser usadas para componer o complementar otras funciones.

Modificado el ejemplo original escrito en java "tradicional", la idea es obtener una lista de discos si tienen canciones "ranqueadas" con mas de 4 puntos.

List<Album> favs = new ArrayList<>();
Distribuir contenido

style="display:inline-block;width:728px;height:90px"
data-ad-client="ca-pub-5164839828746352"
data-ad-slot="7563230308">