【发布时间】:2017-10-30 19:12:28
【问题描述】:
如何在 lambda 表达式中将我的对象设置为另一个?我有错误
lambda 表达式中使用的变量应该是最终的或有效的最终
使用以下代码:
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;
}
【问题讨论】:
-
所以你试图在列表中找到匹配条件的最后一个对象?如果是这样,这可能是 this question 的副本。
-
你应该使用收集器。
-
不,你不能在 Java 中这样做。说明你的实际最终目标。
-
@DenisStephanov 好的,但是如果有多个元素与您的过滤器匹配,会发生什么?它应该只使用第一个吗?或者任何人?
-
@DenisStephanov 您正在寻找 findFirst。