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!");
}
}
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)