空指针异常加倍

时间:2011-05-24 18:50:06

标签: java double nullpointerexception

有人可以解释一下为什么我在这里得到NullPointerException

String s = request.getParameter("tbExample");
    _tbExample = new Double (Double.valueOf(s).doubleValue());

3 个答案:

答案 0 :(得分:9)

s可能为null。根据javadoc,如果s为null,则valueOf将抛出空指针异常。

答案 1 :(得分:1)

在继续之前尝试检查s为空。

您的请求中可能不存在tbExample参数。 因此返回null以指示该事实,并且被分配给s。然后将其传递给Double.valueOf,这是无效的输入。

尝试这样的事情:

String s = request.getParameter("tbExample");
if(s == null)
{
    // Handle the error.
    // You could log something, throw exception, exit early, etc.
    // Do whatever is appropriate for your application.
}
else
{
    _tbExample = new Double (Double.valueOf(s).doubleValue());
}

答案 2 :(得分:1)

我明白为什么你在这里感到困惑。您正在使用String,将其解析为Double,将其转换为double并再次转换为Double。一个更简单的解决方案是

_tbExample = s == null ? null : Double.valueOf(s);

这可以处理snull并将String变为Double

的情况

这是一个简单的测试程序。

Double _tbExample;

String s = null;
_tbExample = s == null ? null : Double.valueOf(s);
System.out.println("_tbExample="+_tbExample);

打印

_tbExample=null