繁体   English   中英

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

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM