为了账号安全,请及时绑定邮箱和手机立即绑定

替换匿名 new Runnable() 的 lambda 如何工作?

替换匿名 new Runnable() 的 lambda 如何工作?

哈士奇WWW 2021-12-10 17:04:24
当您编写匿名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 表达式让您可以更紧凑地表达单一方法类的实例。


查看完整回答
反对 回复 2021-12-10
  • 1 回答
  • 0 关注
  • 374 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信