gpt4 book ai didi

java - 在 lambda 表达式中设置对象

转载 作者:行者123 更新时间:2023-12-03 00:57:11 24 4
gpt4 key购买 nike

如何在 lambda 表达式中将我的对象设置为另一个对象?我收到错误

variable used in lambda expression should be final or effectively final

使用以下代码:

public MyObj myFun(MyObj o) {
MyObj obj = null;

myObjList.stream().filter(o -> ...).forEach(o -> {
// I do some stuff here

// I need here set obj to o, but I got error
obj = o;
});

return myObj; // I need return found obj or null;
}

最佳答案

您无法分配 o到外部变量。但您可以将其作为流处理的结果返回。使用map而不是forEach并返回o来自映射器。然后做findAnyfindFirst - 这会给你一个Optional<MyObj> 。终于做到了orElse(null)返回找到并处理的对象或 null如果没有找到。

MyObj obj = myObjList
.stream()
.filter(o -> ...)
.map(o -> {
// I do some stuff here

// I need here set obj to o, but I got error
return o;
})
.findAny()
.orElse(null);

关于java - 在 lambda 表达式中设置对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47022628/

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