[英]Cannot do null check on date in input field
Java:
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);
我实际上应该根据空指针检查什么? 我提供的两个条件似乎不满足例外要求。
您的逻辑不正确。 使用“ &&”代替“ ||”。
if (requestModel.getDateTo() != null || !(requestModel.getDateTo().isEmpty()))
您必须使用&&
(和)代替||
(要么)。
您目前正在检查日期是否不为空或日期是否为空。
因此,对于一个空字符串,您得到(true || false),它为true,因此它将尝试解析空日期。
这里:
if (requestModel.getDateTo() != null || !requestModel.getDateTo().isEmpty())
这将始终对两个表达式求值。
您想使用&&代替; 具有隐式保证在进行第二项测试之前,第一个表达式的计算结果为true 。
|| 必须计算两个表达式(当第一个为false时 ); 而&&在第一个表达式为false时将不对第二个表达式求值。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.