gpt4 book ai didi

java - Lambda 不解析类型

转载 作者:行者123 更新时间:2023-11-29 10:09:32 24 4
gpt4 key购买 nike

我看到一个奇怪的问题,eclipse 没有识别我的 lambda 参数

public static void main(String[] args) {
int[] array = {23,43,56,97,32};
int sum1 = Arrays.asList(array).stream().reduce(0, (total, e) -> total + e).intValue();
}

我得到 total 并且 e 无法解析为变量。
我看到一些示例,其中“total”和“e”被用作参数而没有声明。
但是,就我而言 - 它拒绝在不声明的情况下进行编译。
这里的问题是什么?

最佳答案

Arrays.asList(array)对于原始数组返回 List其单个元素是该数组。

改变

Arrays.asList(array).stream()

Arrays.stream(array)

注意这将给出一个 IntStream , 不是 Stream<Integer> , 所以不需要 intValue()最后:

int sum1 = Arrays.stream(array).reduce(0, (total, e) -> total + e);

对于 Stream<Integer>你可以这样写:

Arrays.stream(array).boxed()

整行是:

int sum1 = Arrays.stream(array).boxed().reduce(0, (total, e) -> total + e).intValue ();

当然你可以简单地获得总和:

int sum1 = Arrays.stream(array).sum ();

关于java - Lambda 不解析类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47220140/

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