我已经为此抓了一段时间..不知道该怎么办。

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/

10-11 05:18