gpt4 book ai didi

java - Double != null 导致 NullPointerException

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:15:25 25 4
gpt4 key购买 nike

我有以下代码片段让我感到困扰,其中 currentRate 和 secondCurrentRate 是正确定义的 Double 对象:

(currentRate != null && secondCurrentRate != null) ? currentRate * secondCurrentRate : null;

这应该检查每个 Double 是否为空,并相应地分配值 null。但是,如果 secondCurrentRate 为 null,则会导致 NullPointerException。我已将代码段更改为:

(currentRate == null | secondCurrentRate == null) ? null : currentRate * secondCurrentRate;

这按预期工作。我的问题是为什么会这样?如果我在对象上调用某些方法,我可以理解它,但我的理解是,在空对象上调用方法时会抛出 NullPointerExceptions。有一个空对象,但没有方法调用。

任何人都可以对此提供任何见解吗?这是在 Java 5 中运行的。

最佳答案

我认为你的问题在别处。

这个有效:

    Double currentRate=null, secondCurrentRate =null;
Double test = (currentRate != null && secondCurrentRate != null) ? currentRate * secondCurrentRate : null;

但是如果你这样做了,就会导致NPE:

    Double currentRate=null, secondCurrentRate =null;
double test = (currentRate != null && secondCurrentRate != null) ? currentRate * secondCurrentRate : null;

关于java - Double != null 导致 NullPointerException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3547804/

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