我有这段代码,我正在尝试找出使用 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/