从Lambda表达式中的方法返回值
我试图弄清楚如何从lambda表达式返回方法值:
public int findMissingNumber(Collection<Integer> ints) { Single<Integer> start = new Single<>(1);
ints.stream().mapToInt(Integer::valueOf).parallel().forEach(i -> {
if (i != start.setValue(start.getValue() + 1)) {
//return here
}
});
return -1;
}
但是,似乎return
在lambda表达式中使用关键字将显式返回lambda函数本身。是否有某种方式可以中断或强制返回整个方法?
回答:
是否有某种方式可以中断或强制返回整个方法?
不会。至少,除非抛出异常,否则不会。
基本上,这不是什么forEach
意思。您可以编写一个方法,该方法接受一个函数,该函数将返回null
“继续执行”
,而返回非null则表示“停止,并将其作为结果” …但该方法 不是forEach
。
实际上,您使用的是lambda表达式。假设您只是在调用forEach
并传递一些参数-
如果该调用使您的方法返回(无异常),而方法本身没有return语句,那 真的 不是 很
奇怪吗?findMissingNumber``findMissingNumber
以上是 从Lambda表达式中的方法返回值 的全部内容, 来源链接: utcz.com/qa/425582.html