Пустая пустая проверка для Пользовательского Объекта в Java - PullRequest
0 голосов
/ 29 января 2019

У меня проверка ниже нуля. У суммы ниже полей

Amount{
  Money amountToBePaid;
  Float percentage;
}

, а у денег ниже полей:

Money {

  String unit;
  BigDecimal value
}


private boolean checkIfAmountDefined(Amount amount){
  amountFlag=false;
  If (null != amount || !ObjectUtils.isEmpty(amount)) {
    if (!ObjectUtils.isEmpty(amount.getAmountToBePaid())&& 
       !ObjectUtils.isEmpty(amount.getPercentage())) {
      if (!ObjectUtils.isEmpty(amount.getAmountToBePaid().getValue()) || 
        !ObjectUtils.isEmpty(amount.getAmountToBePaid().getUnit())) {
        amountFlag = true;
        return amountFlag;
      }
    }
}
return amountFlag;
}

Мне нужно проверить, не определена ли сумма длякоторый я запускаю ниже c проверка. Проблема в том, что я получаю исключение нулевого указателя для иногда с процентом, иногда с другим полем.Я не могу игнорировать ни одно из внутренних полей, так как на основе этих полей я буду считать, Количество определено или нет.Любое предложение?

1 Ответ

0 голосов
/ 30 января 2019

Ваш первый случай, если If (null != Amount || !ObjectUtils.isEmpty(Amount)) должен быть

if (null != Amount && null != Amount.getAmountToBePaid() && !ObjectUtils.isEmpty(Amount)) 

, так как вы будете использовать их позже, это гарантирует, что вы не получите null pointer exception, пока ObjectUtils.isEmpty(...) обрабатывает null соответственно.

Если метод возвращает логическое значение, основанное на этих условных выражениях, я бы return true;, если бы он прошел через все эти операторы if, return false; в конце, чтобы выполнить ваш boolean return.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...