我的空值检查以下 金额包含以下字段
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(有时与其他字段)中获得空指针异常。我不能忽略任何内部字段,因为基于这些字段,我将考虑是否定义了金额。有什么建议吗?
答案 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}}。