java - 如果条件为假,则返回 Null
问题描述
如果此函数的条件为假,我在返回空值时遇到问题:
private <Optional>ServiceElements getPrice(final ServiceRequest serviceRequest,
final Date date,
final Integer code) {
if (isNotAFilter(serviceRequest.getCustomerId(),
serviceRequest.getStaffId()) {
return custRepository.getCustData(date, code).stream().filter(e -> e.getPrice() != null).filter(e -> e.getPrice >=0)
.findFirst();
}
return null;
}
private double calculate(final ServiceRequest serviceRequest)
{
return getPrice(serviceRequest).get().getPrice();
}
java.lang.NullPointerException: null
调用getPrice
方法时抛出A而不是返回 null 值。
解决方案
if (isNotAFilter(serviceRequest.getCustomerId(),
serviceRequest.getStaffId()) {
price = custRepository.getCustData(date, code);
}
如果上述 if 条件评估为 false,则您的变量price
为null
. 然后你的 return 语句抛出一个NullPointerException
.
推荐阅读
- firebase - 在 Firestore 中强制“离线”模式
- mysql - 我想获取图像,但我做到了,但方式错误
- javascript - 如何让 columnMenu 在每一列中呈现并在 Kendo React Grid 中正确过滤?
- amazon-web-services - 如何使用 Fluentbit 禁用 JSON 格式并仅将日志消息发送到 Cloudwatch?
- c++ - 为什么 unordered_map 需要散列而不是地图?
- mysql - 如何从列中获取给定日期的行
- java - 用户创建的新对象不会添加到列表中,也不会在场景中显示
- python - Python 为什么 Django 不让我加载新产品
- python - 如何选择除一列的最后一行之外的行?
- c# - 使用 MVVM 持续更新数据