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