【问题标题】:java.util.date to java.sql.date conversion NPE [duplicate]java.util.date 到 java.sql.date 转换 NPE [重复]
【发布时间】:2015-05-08 12:33:18
【问题描述】:

我正在尝试设置一种将 java.util.date 类型变量转换为 java.sql.date 类型变量的方法,以便它们可以持久保存到数据库中。但是,我设置的代码不断返回空指针异常,即使我正在获取传递给方法的参数的值。

public static java.sql.Date convertUtilDateSQLDate(java.util.Date utilDate){

        long utilDateTime = utilDate.getTime();

        java.sql.Date sqlDate = new java.sql.Date(utilDateTime);

        return sqlDate;

    }

有人知道为什么会这样吗?

【问题讨论】:

  • 您能否验证utilDate 不为空?
  • 你可能给它一个空参数。
  • utilDate 不为空;我什至在实例化sqlDate对象之前测试了long utilDateTime的值,它有一个long值。
  • 你是对的,我已经确定管道中有一个空值 - 我在使用 Apache POI 将 Excel 日期读取到 java.util.date 时遇到问题 - 单元格。 getDateCellValue 没有将其作为日期读取。
  • 发现问题在于,当我使用 rows.next() 在 while 循环内读取 Excel 文件行时,即使单元格中没有值,它也会读取空白行。

标签: java sql nullpointerexception type-conversion


【解决方案1】:

utilDate 对象可能为空。包括 NULL 检查条件以避免它。喜欢。

public static java.sql.Date convertUtilDateSQLDate(java.util.Date utilDate){

         if( utilDate == null){
              //add log and return;
              return null;
          }
            long utilDateTime = utilDate.getTime();
            java.sql.Date sqlDate = new java.sql.Date(utilDateTime);
            return sqlDate;

        }

如果utilDate 为null,则此方法返回NULL,因此调用此convertUtilDateSQLDate() 方法的方法也应进行NULL 检查。

【讨论】:

    猜你喜欢
    • 2015-04-03
    • 2018-04-03
    • 2012-08-21
    • 2011-08-29
    • 2016-02-14
    • 1970-01-01
    • 2014-04-19
    • 2020-03-03
    • 1970-01-01
    相关资源
    最近更新 更多