gpt4 book ai didi

java - 在这种情况下使用方法引用有什么好处?

转载 作者:搜寻专家 更新时间:2023-10-31 19:54:37 25 4
gpt4 key购买 nike

我有两个变量如下:

List<Basket> bigBasket = new ArrayList<>();
Basket basket = new Basket();

我编写了以下代码来添加 bigBasket 中项目之间的关系和 basket :

for (Fruit specialFruit : bigBasket.get(0).getFruitInBasket()) {
for (Fruit fruit : basket.getFruitInBasket()) {
specialFruit.addRelationship(fruit);
}
}

现在这一切都很好,但 IntelliJ 检查了代码并提出使用方法引用来改进它,所以我得到了以下信息:

for (Fruit specialFruit : bigBasket.get(0).getFruitInBasket()) {
basket.getFruitInBasket().forEach(specialFruit::addRelationship);
}

所以上面的行数较少,但它的实际优势是什么?我并不完全了解 Java 8 功能的好处,所以这可能就是我不真正了解发生了什么的原因。

在我看来,假设您对 Java 8 的特性了解不多,“改进”版本的代码在立即理解正在发生的事情与标准的 for 循环相比可读性不是很好。

有人可以解释“改进”代码与标准 for 循环的好处吗?

编辑:删除了对 lambda 的不正确引用。该代码仅使用方法引用 - 只是我的行话错误!

最佳答案

我认为“改进”的代码在性能方面没有任何优势。这两个片段将遍历整个 basket.getFruitInBasket() 集合,并对每个元素执行完全相同的操作。

偏爱一种方式只是一种品味问题。在我看来,Java 8 版本更清楚地表达了您对 Collection 的所有元素执行单个操作的事实(假设您习惯于方法引用)。

顺便说一句,您的代码中没有 lambda 表达式,只有一个方法引用。

关于java - 在这种情况下使用方法引用有什么好处?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28604431/

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