在输入字段中无法对日期进行空检查

时间:2017-04-20 14:47:51

标签: java date

爪哇:

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);

我应该在空指针方面实际检查什么?我提供的两个条件似乎不满足例外要求。

3 个答案:

答案 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 时,不会评估第二个表达式。