爪哇:
try {
if (requestModel.getDateTo() != null || !(requestModel.getDateTo().isEmpty())) {
formatter = new SimpleDateFormat("dd/MM/yyyy");
Date dateTo = formatter.parse(requestModel.getDateTo());
requestDOOb.setDateTo(dateTo);
} else {
requestDOOb.setDateTo(dateFrom);
}
}
catch (ParseException e) {
e.printStackTrace();
return "request";
}
例外:
java.text.ParseException: Unparseable date: "" at requestDOOb.setDateTo(dateFrom);
我应该在空指针方面实际检查什么?我提供的两个条件似乎不满足例外要求。
答案 0 :(得分:3)
你的逻辑错误。使用"&&"而不是" ||"。
答案 1 :(得分:2)
if (requestModel.getDateTo() != null || !(requestModel.getDateTo().isEmpty()))
您必须使用&&
(和)而不是||
(或)。
您当前检查日期是否为空或是否为空。
因此,对于一个空字符串,你得到(true || false),这是真的,因此它试图解析空日期。
答案 2 :(得分:1)
下面:
if (requestModel.getDateTo() != null || !requestModel.getDateTo().isEmpty())
这将始终评估两个表达式。
你想使用&&代替;在进行第二次测试之前,要保证第一个表达式计算为 true 。
||必须评估两个表达式(当第一个 false 时);而&&当第一个表达式为 false 时,不会评估第二个表达式。