持有 Runnable 实现的函数

Function which hold implementation of Runnable

我有这个代码:

new Thread(() -> {

    //do things

}).start();

new Thread(() -> {

    //do same things

}).start();

我知道我可以声明一个包含 lambda 的函数:

Function<Integer, Integer> add = x -> x + 1;

我想让这个函数保持 new ThreadRunnable 的实现。

但是我不知道在 <>Function 之间放什么。

java.util.Function 不能表示 Runnable 任务,因为函数接受一个参数和 returns 一些东西,相反 Runnable.run 方法不接受任何参数并且returns 没什么。即使你觉得 Runnable 在本质上与 Function<Void, Void> 有点相似,但由于同样的原因,即使这个假设也是错误的。

鉴于Runnable是一个单一的抽象方法接口(它只有运行方法),你只能用lambda表达式来实现它。另请注意,此 lambda 只是对正统匿名内部 类 的一种更简洁的语法糖。这是它的样子。

Runnable task = () -> System.out.println("My task");

您可以在您的程序中将此 Runnable 实例用作普通 Runnable 命令。这是一个这样的用法示例。

Thread t = new Thread(task);
t.start();