gpt4 book ai didi

java - 在 Java 中验证 BigDecimal 数据类型的空值

转载 作者:行者123 更新时间:2023-11-30 06:25:14 24 4
gpt4 key购买 nike

我正在尝试在 Java 中验证数据类型 BigDecimal 的 NULL。我能够验证 0 值,但是 NULL 会导致 NULL 点异常。我应该在异常中处理此数据类型的验证,还是我可以对数据执行一些计算来验证它。下面是我到目前为止所做的一个例子:

 if(crime.getCrimeLatLocation() != null  & crime.getCrimeLongLocation() != null || crime.getCrimeLatLocation().compareTo(BigDecimal.ZERO) != 0 & crime.getCrimeLongLocation().compareTo(BigDecimal.ZERO) != 0){

logger.info('Valid Data');
}

最佳答案

你的 || 应该是一个 && - 发生的事情是当你传入一个 null 值时,它在前两个条件下评估为 false,但随后它继续关于第三和第四个条件并导致异常。如果将 || 更改为 &&,则短路求值将阻止第三和第四条件求值。

一定要使用 && 而不是 & - 前者使用短路求值,但后者会强制第三和第四条件求值,你会再次得到一个空指针异常。 condition1 && condition2 表示“如果 condition1 为假,则返回 false,否则评估 condition2”——如果 condition1 为假,则永远不会评估 condition2。相反,condition1 & condition2 将始终评估这两个条件。使用 & 的唯一原因是条件是否有副作用。同样,condition1 ||如果 condition1 为真,condition2 将不会评估 condition2,但 | 将始终评估这两个条件。

关于java - 在 Java 中验证 BigDecimal 数据类型的空值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15936286/

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