有人可以解释一下为什么我在这里得到NullPointerException
:
String s = request.getParameter("tbExample");
_tbExample = new Double (Double.valueOf(s).doubleValue());
答案 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);
这可以处理s
为null
并将String
变为Double
这是一个简单的测试程序。
Double _tbExample;
String s = null;
_tbExample = s == null ? null : Double.valueOf(s);
System.out.println("_tbExample="+_tbExample);
打印
_tbExample=null