【发布时间】:2013-04-10 20:59:10
【问题描述】:
我正在尝试验证 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');
}
【问题讨论】:
-
你有两个
&- 他们应该是&&- 布尔逻辑应该更好地适应这种变化。此外,如果您将纬度/经度比较分开,布尔逻辑可能会更清晰并且可能会更好地工作。此外,您可能希望使用equals(BigDecimal.ZERO),而不是使用compareTo() != 0。 -
@RobI 你不应该将
.equals与BigDecimal一起使用,因为这会考虑到精度,所以0.00没有equals0。compareTo是正确的方法。 -
谢谢,@bmorris591 - 我不知道!
标签: java validation bigdecimal