Icono play
Java
Funciones anónimas

Las funciones anónimas en Java están disponibles desde el lanzamiento de Java 8 en el año 2014. También son conocidas como funciones lambda, funciones de cierre o closures.

Una función anónima no está enlazada a una clase, se implementa según lo que se ha definido en una interface funcional, y una interface es considerada funcional si define un único método abstracto.

En esencia, las funciones anónimas en Java, permiten implementar funciones que ya existían, creando código de una manera más concisa.

Sintaxis de las Funciones Anónimas en Java

Las funciones anónimas en Java se construyen siguiendo una sintaxis similar a lo que sigue:

(parámetros) -> (código de la función)
  • Del lado izquierdo encontramos los parámetros; será necesario usar los paréntesis si hay dos o más parámetros o no hay ninguno.
  • Luego, encontramos el operador - > lambda que separa las partes de la función.
  • Finalmente, del lado derecho tenemos el cuerpo de la función que puede tener una sola línea de código o varias. Si son varias, deberán incluirse las llaves para delimitar el bloque y la palabra return si devuelve un valor.

Ejemplos de Funciones Anónimas en Java

A continuación vamos a ver algunos ejemplos sencillos que muestran cómo se construyen las funciones anónimas en Java:

Ejemplo 1

  1. En primer lugar, hay que generar un proyecto nuevo en Java con su respectivo paquete.
  2. Dentro de ese paquete vamos a crear una interface con un solo método abstracto como sigue:
package misejemplos;
@FunctionalInterface

//creamos una interface

public interface InterfaceUno {
    void saludo();
}

3. Ahora es necesario crear una clase principal para implementar la interface que construimos, así: 

package misejemplos;

public class Principal {

    public static void main(String args[]) {

        //implementamos el método que definimos en la interface que construimos
        //siguiendo la sintaxis que revisamos

        InterfaceUno saludar = () - > System.out.println("Hola");

        //hacemos referencia a la variable que apunta a la interface y usamos 
        //el método que contiene

        saludar.saludo();

    }

}

Este ejemplo no tiene ningún parámetro.

Ejemplo 2

Ahora veremos un ejemplo de una función anónima que utiliza un parámetro:

  1. Nuevamente, construimos un proyecto en Java con un paquete.
  2. Creamos una interface, en esta ocasión le pasamos dos parámetros:
package misejemplos;

@FunctionalInterface

public interface InterfaceUno {

    //estamos indicando que el método recibe dos parámetros.

    void saludo(String a, int edad);

}

3. Luego, creamos la clase principal, implementando la interface:

package misejemplos;

public class Principal {

    public static void main(String args[]) {

        //implementamos el método que definimos en la interface que construimos
        //siguiendo la sintaxis que revisamos, usamos una llave
        //para encerrar el código de la función anónima.

        InterfaceUno saludar = (A, B) - > {

            System.out.println("Hola " + A);

            System.out.println("Tu edad es: " + B);

        };

        //hacemos referencia a la variable que apunta a la interface y usamos
        //el método, sin olvidar pasar los datos necesarios.

        saludar.saludo("Juan", 11);

    }

}

En este ejemplo hemos utilizado dos parámetros y encerramos el código correspondiente a la función entre llaves como lo establece la sintaxis.

Ejemplo 3:

Este es un ejemplo que recibe parámetros y hace una operación:

  1. En la interface, tenemos:
package misejemplos;

@FunctionalInterface

public interface InterfaceUno {

    void multiplicar(int a, int b);

}

2. En la clase principal:

package misejemplos;

public class Principal {

    public static void main(String args[]) {

        InterfaceUno multiplica = (A, B) - > {

            //usamos una variable interna de tipo entero para almacenar y presentar
            //resultado

            int resultado = (A * B);

            System.out.println("El resultado de multiplicar es " + resultado);

        };

        multiplica.multiplicar(5, 8);

    }

}

Ventajas de usar Funciones Anónimas en Java

Si bien antes de la aparición de las funciones anónimas en Java se podía programar sin necesidad de ellas, una vez que están disponibles aportan las siguientes ventajas:

  • Permiten pasar funciones como parámetros.
  • Reducen la cantidad de código que es necesario escribir.
  • La legibilidad de los proyectos mejora notablemente, debido a lo mencionado anteriormente.
¿Todavía no te has apuntado a nuestro Bootcamp?
Tenemos muchos cursos para ofrecerte y ¡TOTALMENTE GRATIS! Estos son algunos de ellos: