gpt4 book ai didi

Java 8 Lambda 自动装箱Reduce 方法

转载 作者:行者123 更新时间:2023-12-01 12:33:13 24 4
gpt4 key购买 nike

我刚刚将 NetBeans 从 8.0 更新到 8.0.1,将 JDK 从 1.8.0 更新到 1.8.0u20。我想我的问题很可能是由 jdk-update 引起的。

在更新之前,我能够编译这行代码:

int sum = myIntegerList.stream().reduce(0, (a, b) -> a + b, (c, d) -> c + d);

现在这将不再编译。 NetBeans 告诉我“无法找到或加载主类”。

现在我必须这样写:

Integer sum = myIntegerList.stream().reduce(0, (a, b) -> a + b, (c, d) -> c + d);

int sum = (int) myIntegerList.stream().reduce(0, (a, b) -> a + b, (c, d) -> c + d);

int sum = myIntegerList.stream().reduce(0, (Integer a, Integer b) -> a + b, (Integer c, Integer d) -> c + d);

有谁知道为什么这不再起作用?我做错了什么吗?

最佳答案

这似乎是 jdk 版本 1.8.0u20 中的一个错误,已在早期的 1.8.0u40 中修复。然而,Netbeans 似乎有自己的有问题的编译器副本,它会在尝试运行编译后的代码时产生干扰。所以把项目的jdk和Netbeans环境换成不同的jdk还不行,还是报NullPointerException

唯一的解决方案是禁用自动编译(项目属性/构建/编译→保存时编译)并重新构建项目。然后它应该运行而不会出现“找不到主类”错误。 (NullPointerException仍然会时不时地在后台发生,但不再妨碍编译和运行)

关于Java 8 Lambda 自动装箱Reduce 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25782601/

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