0

我有一个检索对象类型并将其转换为双精度值的查询。这是我的做法:

Double.valueOf(rs.getObject("price").toString()).doubleValue()));

但是,如果 DB 中的价格数据为 NULL,则会出现错误:NullPointerException。

我该如何处理?如果它为 NULL,我只想将其留空。

我想问题是当它为空时,Java 无法转换为字符串或 doubleValue(),我该如何防止这种情况发生?

4

2 回答 2

1

如果您发现它为空,请检查它,然后null不要rs.getObject("price")执行上述操作,只需将其保留为您想要的默认值(空白或其他)

如果找不到合适的值,NumberFormatException也可以在转换为时处理它StringDouble

于 2013-06-17T21:44:41.287 回答
1

Before you do anything with it, just check and make sure that it's not null -

Object obj = rs.getObject("price");
if(obj != null) {
     double doubleVal = Double.parseDouble(obj.toString());
else {
     //some default value or exception
}

In case the default is going to be 0 then you can just use ResultSet#getDouble() method.

Returns: the column value; if the value is SQL NULL, the value returned is 0

于 2013-06-17T21:47:34.367 回答