gpt4 book ai didi

java - lambda 替换 Anonymous new Runnable() 是如何工作的?

转载 作者:行者123 更新时间:2023-12-02 01:50:37 26 4
gpt4 key购买 nike

当您编写匿名Runnable时,例如:

Thread producer = new Thread(new Runnable() {
@Override
public void run() {
// do something
}
});

IntelliJ 建议将其替换为以下 lambda:

Thread producer = new Thread(() -> {
// do something
}
});

效果一样好。

这到底是如何工作的?特别是:

  1. 使用的构造函数仍然是Thread(Runnable target) ,但 lambda 中似乎没有任何内容表明它是 Runnable。
  2. 为什么 @Override public void run()突然不再需要了?

最佳答案

如果您的匿名类只有一个方法,您可以将其实现为 lambda 表达式。这里作为 lambda 传递的是 run 方法的实现。 Lambda 表达式可让您更紧凑地表达单一方法类的实例。

关于java - lambda 替换 Anonymous new Runnable() 是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53027843/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com