从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

回到顶部