当您编写匿名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()突然不再需要了?
1 回答
ibeautiful
TA贡献1993条经验 获得超5个赞
如果您的匿名类只有一种方法,您可以将其实现为 lambda 表达式。您在这里作为 lambda 传递的是该run
方法的实现。Lambda 表达式让您可以更紧凑地表达单一方法类的实例。
添加回答
举报
0/150
提交
取消