当前位置: 首页 > 面试题库 >

从Lambda表达式中的方法返回值

杭柏
2023-03-14
问题内容

我试图弄清楚如何从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表达式来将给定的纬度和经度转换为地址。表达式应该以坐标为参数,并返回其相应的地址。但是,返回的值为null。以下是我的班级: 以下是logcat的输出: 以下是我的用法: 是类的对象,以下是相关接口: 当我尝试从相关适配器打印坐标时,它们会正确打印。因此,位置正在正确设置,但是当我试图从另一个类访问它时,它会显示字符串的空值。你能建议一个替代方法来从表达式中提取位置吗?

  • 将异常获取为 :lambda表达式中的返回类型错误:

  • 以下代码在IntelliJ和Eclipse中编译得很好,但JDK编译器1.8.0\u 25对此表示不满。首先,代码。 javac 1.8.0\u 25的输出为: 当我更换时?超级E只需使用E,JDK就能成功编译。 当我将替换为,JDK编译成功。 由于它适用于JDK 1.8.0_60,我怀疑它是编译器错误。 有没有详细说明是什么原因造成的以及何时修复的?

  • 我正在学习Java中的Lambda并试图理解它。例如,我有以下代码: 我不理解这个语句我看到是类型的引用变量。但是我不明白这个到底是什么。这是方法定义吗?这个方法的返回类型是什么?我认为应该是,因为方法的返回类型是。如有任何反馈将不胜感激。

  • 我试图学习在Java8中使用lambda表达式的方法引用,但遇到了一些我无法完全理解的东西。 使用lambda表达式(而不是创建接口等),是否有更干净的方法来完成此操作?

  • 我有一个静态的通用FormBuilder超文本标记语言助手方法(HTMLHelper类上的扩展方法),它接受视图模型类型的通用参数,然后当从数据库传递一个或多个字符串属性名称时,生成一个超文本标记语言形式在ASP. NET MVC 5.1 with. NET 4.5中。 我有一个公共方法来生成表单,还有单独的私有方法来生成表单中的“模块”部分,然后渲染其中的每个字段。类型参数从上到下沿此链传递。