簡體   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