繁体   English   中英

如何检查Date对象的Null值

[英]How to check Null value for Date Object

我正在使用JSF 2.0和RichFaces 3.3。 在我的View中,用户将从日历中查看日期。 使用的标签是<rich:calendar> 这是使用Date对象映射到辅助bean中的。 但是,此字段是可选的,因此当用户未选择日期时,此特定条目的辅助bean getter返回null ,这是正确的。

我的问题是我必须将此日期存储在DB中。 所以在存储之前我是以这种方式输入它:

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

但是它在if条件中抛出NullPointerException 我想在用户没有选择日期时在DB中插入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);

    }
}

尝试if(newProfile.get(Constants.DETAILS_EXPIRY_DATE_1) == null)

对于String,您可以使用equals()方法。 此外,在使用equals方法之前,对象需要进行空检查以避免NullPointerException。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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