DEV Community

Cover image for Interfaces funcionales en Java al estilo delegado de C#
AlexanDev_CWA
AlexanDev_CWA

Posted on

Interfaces funcionales en Java al estilo delegado de C#

En Java, no hay una característica nativa de "delegados" como en C#. Sin embargo, Java proporciona interfaces funcionales y expresiones lambda que pueden lograr patrones similares a través de conceptos como programación funcional y devolución de llamadas (callbacks).

Las interfaces funcionales son interfaces que tienen un solo método abstracto y pueden ser utilizadas con expresiones lambda. Un ejemplo común es la interfaz Runnable que se utiliza con hilos en Java. A partir de Java 8, también se introdujo el paquete java.util.function, que incluye varias interfaces funcionales predefinidas como Consumer, Supplier, Predicate, etc.

A continuación, te muestro un ejemplo simple utilizando una interfaz funcional y una expresión lambda:

// Interfaz funcional con un solo método abstracto
@FunctionalInterface
interface MiDelegado {
    void hacerAlgo(String mensaje);
}

public class Main {
    public static void main(String[] args) {
        // Uso de una expresión lambda para implementar el delegado
        MiDelegado miDelegado = (mensaje) -> System.out.println("Haciendo algo: " + mensaje);

        // Llamada al método de la interfaz funcional
        miDelegado.hacerAlgo("¡Hola desde la expresión lambda!");
    }
}
Enter fullscreen mode Exit fullscreen mode

En este ejemplo, MiDelegado es una interfaz funcional con un método llamado hacerAlgo. Luego, se utiliza una expresión lambda para proporcionar la implementación de ese método. La expresión lambda se asigna a una instancia de la interfaz funcional (miDelegado en este caso) y se llama al método de la interfaz funcional.

Aunque no es exactamente lo mismo que los delegados en C#, proporciona una forma similar de lograr funcionalidades de devolución de llamadas y programación funcional en Java.

Top comments (0)