2014-11-03 86 views
0

我一直在這個撓我的頭一陣子..不知道該怎麼辦。Nullpointerexception當使用parseDouble

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); 

的所有IM試圖做到這一點得到通過貨號數據庫的價格。由於即時獲得這個值作爲一個字符串值,我使用Double price = Double.parseDouble(tempprice);將其更改爲一個雙值。 這一切工作,我轉身前finalpriceArrayList(這樣我可以同時插入多個值。(上面給出的代碼是一個循環...的一部分)反正現在即時得到一個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++; 
     } 

任何線索什麼,我在這裏失蹤?/

+0

tempprice爲null,這就是爲什麼你得到一個NullPointerException – ryekayo 2014-11-03 19:48:40

+0

代碼中的循環在哪裏? – manouti 2014-11-03 19:50:36

+4

您需要開始使用調試器 – Lovis 2014-11-03 19:50:42

回答

2

看一看的API文檔:

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。

+0

謝謝,我將閱讀關於調試的教程..從來沒有真正打擾過。 – Tsar 2014-11-03 20:13:22

+1

@ShifaTsar:這是使用Eclipse進行調試的良好介紹: http://www.vogella.com/tutorials/EclipseDebugging/article.html 如果您對程序設計非常感興趣,那麼您必須知道調試器是必須的將幫助您開發一個更好的模型,瞭解您的計劃中發生了什麼。祝你好運! – markus 2014-11-04 07:18:23

相關問題