Я пытаюсь проверить значения NULL для типа данных BigDecimal в java. Я могу проверить значение 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');
}
&
- если они будут&&
- логическая логика должна работать лучше с этим изменением. Кроме того, логическая логика, вероятно, будет более понятной и, возможно, будет работать лучше, если вы разделите сравнения широты и долготы. Также вместо использованияcompareTo() != 0
вы, вероятно, захотите использоватьequals(BigDecimal.ZERO)
. - person Rob I   schedule 11.04.2013.equals
сBigDecimal
, так как при этом учитывается точность, поэтому0.00
неequals
0
.compareTo
правильный подход. - person Boris the Spider   schedule 11.04.2013