空空检查Java中的自定义对象

时间:2019-01-29 20:57:49

标签: java java-8

我的空值检查以下 金额包含以下字段

Amount{
  Money amountToBePaid;
  Float percentage;
}

Money具有以下字段:

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 check下运行的金额是否未定义。问题是我在具有百分比的somtimes(有时与其他字段)中获得空指针异常。我不能忽略任何内部字段,因为基于这些字段,我将考虑是否定义了金额。有什么建议吗?

1 个答案:

答案 0 :(得分:0)

如果情况为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 {{ 1}}。