我正在使用 JSF 2.0 和 RichFaces 3.3。在我的 View 中,用户将从日历中选择一个日期。使用的标签是 <rich:calendar>
.这在支持 bean 中映射为 Date
目的。但是,此字段是可选的,因此当用户未选择日期时,此特定条目的支持 bean getter 返回 null
, 这是对的。
我的问题是我必须将这个日期存储在数据库中。因此,在存储之前,我以这种方式对其进行类型转换:
if (newProfile.get(Constants.DETAILS_EXPIRY_DATE_1).equals(null)) {
this.cStmt.setDate(15,null);
} else {
java.sql.Date sqlDate = new java.sql.Date(((java.util.Date)newProfile.get(Constants.DETAILS_EXPIRY_DATE_1)).getTime());
this.cStmt.setDate(15,sqlDate);
}
但是它抛出一个 NullPointerException
在if
健康)状况。我想插入 null
用户未选择日期时数据库中的值。我该怎么做?
最佳答案
如果您想在避免 NullPointerException 方面变得更健壮,
if (newProfile != null) {
Object obj = newProfile.get(Constants.DETAILS_EXPIRY_DATE_1);
if (obj == null) {
this.cStmt.setDate(15, null);
} else {
java.sql.Date sqlDate = new java.sql.Date(((java.util.Date)obj).getTime());
this.cStmt.setDate(15,sqlDate);
}
}
关于java - 如何检查日期对象的空值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7397096/