gpt4 book ai didi

Java 8 流过滤器局部变量

转载 作者:行者123 更新时间:2023-12-01 12:35:19 28 4
gpt4 key购买 nike

Obj1 x = null;
String key = null;
while(it.hasNext()){
x = it.next();
key = x.getKey();
listObject.stream().filter(e -> e.getKey().equals(key)).findFirst().get();
}

这是提示以下消息:“局部变量键必须是最终的或有效的最终...”我理解 lambda 上下文是在运行时创建的,它需要不会更改的变量。

如何使用功能样式在列表中查找对象?
我想避免使用 while 迭代列表的旧时尚方式.

最佳答案

您可以简单地将变量声明移动到循环内,从而使它们有效地最终化:

...
while(it.hasNext()){
Obj1 x = it.next();
String key = x.getKey();
listObject.stream().filter(e -> e.getKey().equals(key)).findFirst().get();
}

实际上,JIT/etc 使得在循环之外声明变量不是问题。

关于Java 8 流过滤器局部变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62154387/

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