我有这个代码:
new Thread(() -> {
//do things
}).start();
new Thread(() -> {
//do same things
}).start();
我知道我可以声明一个包含 lambda 的函数:
Function<Integer, Integer> add = x -> x + 1;
我想让这个函数来保存 Runnable
的实现来自new Thread
.
但我不知道在 <>
之间放什么的Function
.
最佳答案
java.util.Function
不能代表Runnable
任务,因为 Function 接受一个参数并返回一些东西,反之 Runnable.run
方法不接受任何参数并且不返回任何内容。即使你觉得Runnable
本质上有点类似于 Function<Void, Void>
,由于同样的原因,即使这个假设也是错误的。
鉴于Runnable
是一个单一的抽象方法接口(interface)(它只有 run 方法),您只需使用 lambda 表达式即可实现它。另请注意,这个 lambda 只是正统匿名内部类的更简洁的语法糖。这是它的样子。
Runnable task = () -> System.out.println("My task");
您可以使用这个Runnable
普通实例 Runnable
你的程序中的命令。这是一个这样的示例用法。
Thread t = new Thread(task);
t.start();
关于java - 保存 Runnable 实现的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58118658/