¿Cuál es la interfaz funcional de Java 8 para un método que no toma nada y no devuelve nada?
Es decir, ¿el equivalente a C # sin parámetros Action
con void
tipo de retorno?
java
java-8
java-stream
Miguel Gamboa
fuente
fuente
Runnable
La especificación de la interfaz indica que debe proporcionar código ejecutable a laThread
clase. No me parece correcto usarloRunnable
donde no está destinado a ser ejecutado por un hilo; parece engañoso.Runnable
se define como aFunctionalInterface
porque cumple con la especificación de una interfaz funcional y se puede crear utilizando la sintaxis lambda. ¿Por qué no crear su propia interfaz funcional? ver Runnable , ver FunctionalInterfaceRunnable
está anotado con@FunctionalInterface
y (ii) incluso en el contexto de una expresión lambda se ejecutará en un hilo: el hilo en el que se ejecuta el lambda que puede ser el hilo actual ...Runnable
estaba destinado a ser utilizado para este propósito, no solo para contextos de hilos.Solo haz el tuyo
y úsalo así
y la salida
fuente
@FunctionalInterface solo permite el método método abstracto Por lo tanto, puede crear una instancia de esa interfaz con la expresión lambda como se muestra a continuación y puede acceder a los miembros de la interfaz
fuente