【发布时间】:2018-10-28 02:13:32
【问题描述】:
当你写一个匿名的Runnable比如:
Thread producer = new Thread(new Runnable() {
@Override
public void run() {
// do something
}
});
IntelliJ 建议用以下 lambda 替换它:
Thread producer = new Thread(() -> {
// do something
}
});
效果一样好。
这究竟是如何工作的?特别是:
- 使用的构造函数仍然是
Thread(Runnable target),但 lambda 中似乎没有任何内容表明它是 Runnable。 - 为什么突然不再需要
@Override public void run()?
【问题讨论】:
标签: java lambda runnable anonymous-class