Tengo este código:
new Thread(() -> {
//do things
}).start();
new Thread(() -> {
//do same things
}).start();
Sé que puedo declarar una función que mantenga lambda:
Function<Integer, Integer> add = x -> x + 1;
Quiero hacer esta función para la implementación de retención Runnable
de new Thread
.
Pero no sé qué poner entre <>
de Function
.
java.util.Function
no puede representar una Runnable
tarea debido a que la función toma en un argumento y devuelve algo, y por el contrario Runnable.run
método no tiene ningún argumento y devuelve nada. Incluso si usted siente que Runnable
es algo similar en su naturaleza a una Function<Void, Void>
, aunque esta suposición es incorrecta debido a la misma razón.
Teniendo en cuenta que Runnable
es una única interfaz método abstracto (Sólo método ha de ejecución), puede simplemente ponerlo en práctica con una expresión lambda. Observe también que este lambda es sólo un azúcar sintáctico más sucinta a las clases internas anónimas ortodoxos. Así es como se ve.
Runnable task = () -> System.out.println("My task");
Puede utilizar este Runnable
ejemplo como un ordinario Runnable
de comandos en su programa. Aquí está un ejemplo tal uso.
Thread t = new Thread(task);
t.start();