java - 保存 Runnable 实现的函数
问题描述
我有这个代码:
new Thread(() -> {
//do things
}).start();
new Thread(() -> {
//do same things
}).start();
我知道我可以声明一个包含 lambda 的函数:
Function<Integer, Integer> add = x -> x + 1;
我想让这个函数保存Runnable
from的实现new Thread
。
但我不知道在 之间放<>
什么Function
。
解决方案
java.util.Function
不能表示Runnable
任务,因为函数接受一个参数并返回一些东西,相反,Runnable.run
方法不接受任何参数并且什么也不返回。即使您觉得它Runnable
在本质上与 a 有点相似Function<Void, Void>
,但由于同样的原因,即使这个假设也是错误的。
鉴于这Runnable
是一个单一的抽象方法接口(它只有 run 方法),您可以只使用 lambda 表达式来实现它。还要注意,这个 lambda 只是正统匿名内部类的更简洁的语法糖。这是它的外观。
Runnable task = () -> System.out.println("My task");
您可以将此Runnable
实例用作程序中的普通Runnable
命令。这是一个这样的示例用法。
Thread t = new Thread(task);
t.start();
推荐阅读
- vue.js - VideoJS Player 似乎打破了 Vue-Router-3?
- google-drive-api - 如何使用 Google Drive API 获取 resourceKey?
- python - DataTable - 单元格中的仅颜色子字符串
- lua - 我正在尝试编写一个脚本来告诉我鼠标何时进入和离开 Roblox Studio 中的 ClickDetector
- java - mockServer andExpect(content().XML 与当前日期连接
- java - JFrame 是如何实际创建的?
- javascript - 安装 body-parser 时出现 404 错误
- python - Apache 无法使用 UTF-8 我该如何解决这个问题
- java - Corda 示例在尝试运行节点时失败
- arrays - 动态分配的指针数组