gpt4 book ai didi

java - 使用 Java 8 避免在 lambda 内部使用 null 的最佳方法是什么?

转载 作者:行者123 更新时间:2023-12-01 06:49:42 27 4
gpt4 key购买 nike

我有这段代码,我正在尝试找出使用 Java 8 避免空指针异常的最佳方法是什么?

promotion.forEach(item ->
item.getDiscount().getPromotions().forEach(promotion -> {
// logic code here
})
);

最佳答案

避免 NullPointerExceptions 的最佳方法是避免空值。在您的示例中,请确保所有方法都不会返回 null。

除了返回 null,您还有多种选择:

  • 抛出异常。例如,如果方法的输入导致除以零,您可以抛出异常而不是返回 null。
  • 返回一个空的可选值。例如,返回 String 的方法可以更改为返回Optional 。当没有 String 可以返回时,返回Optional.empty()
  • 返回一个空的Collection(例如当结果类型是List时,如果没有找到结果则返回一个空的List,而不是返回null)
  • 返回能够反射(reflect)结果的自定义结果类型。例如,在进行验证时,您可以返回代表成功/失败和错误消息的 ValidationResult,而不是在没有错误时返回 null 错误消息

关于java - 使用 Java 8 避免在 lambda 内部使用 null 的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41109363/

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