有人能解释我为什么在这里,我得到一个NullPointerException
:空指针异常双
String s = request.getParameter("tbExample");
_tbExample = new Double (Double.valueOf(s).doubleValue());
有人能解释我为什么在这里,我得到一个NullPointerException
:空指针异常双
String s = request.getParameter("tbExample");
_tbExample = new Double (Double.valueOf(s).doubleValue());
尝试检查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());
}
我可以看到你为什么在这里混淆。您正在采取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
,所以我能做些什么来解决这个问题 – jack 2011-05-24 18:52:08
此外,还有很少的新双(Double.valueOf(S).doubleValue())一个很好的理由;只需使用Double.valueOf(s) – 2011-05-24 18:55:57
“request”是什么类型? 'getParameter()'有效的返回值是什么? – jwd 2011-05-24 18:57:40