我已经为此抓了一段时间..不知道该怎么办。
String tempprice = null;
String findPriceCommand = "SELECT sellingprice FROM `item` WHERE itemNo = '" + itemNo + "'";
try
{
tempprice = viewValue(conn, findPriceCommand);
}
catch (SQLException e)
{
e.printStackTrace();
}
Double price = Double.parseDouble(tempprice);
Double temp = (quantity.get(count) * price);
finalprice.add(temp);
我试图做的所有事情都是使用itemNo从数据库中获取价格。由于即时通讯将此值作为字符串值获取,因此我使用
Double price = Double.parseDouble(tempprice);
将其更改为双精度值。在我将
finalprice
转换为ArrayList
之前,这一切都起作用了(以便我可以一次插入多个值。。(上面给出的代码是循环的一部分...)无论如何,现在我得到了NullPointerException
像这样:
int count = 0;
if (action.getSource() == btnAdd)
{
//other ArrayList variables
ArrayList<Integer> quantity = new ArrayList<Integer>();
ArrayList<Double> finalprice = new ArrayList<Double>();
//.....previous code...
count++;
}
有什么线索我在这里想念吗? :/
最佳答案
看一下API Doc:
http://docs.oracle.com/javase/7/docs/api/java/lang/Double.html#parseDouble%28java.lang.String%29
它说,当s为NULL时,Double.parseDouble(String s)将抛出NullPointerException。
只是一个提示。当您遇到任何异常时,请查看一下堆栈跟踪。它会首先向您确切显示您的NullPointerException发生异常的位置。从那里开始,只有一小步可以看到问题出在您的tempprice变量中。使用调试器并逐步执行代码,以检查tempprice为NULL的原因。
关于java - 使用parseDouble时出现NullpointerException,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26721911/