2011-02-17 94 views
0

這個問題似乎很基本,但我不知道爲什麼,有什麼問題,我弄不明白。更改數據類型的問題Java

int [] concept = null; 
int i = 0; 
for (Iterator iterator = conceptsListGeneral.iterator(); iterator.hasNext();) { 
    Map<String, Object> map = (Map<String, Object>) iterator.next(); 
    String count = (String)map.get("count"); 
// concept[i] = new Integer(count).intValue(); 
// concept[i]= Integer.parseInt(count, 10); 
    Integer intObj2 = Integer.valueOf(count); 
    concept[i]= intObj2.intValue(); 
    i++; 
} 

這些有趣的線條是我嘗試過的一些線索。我在最後一行得到一個java.lang.NullPointerException異常。 通過調試,我知道String count有一個值,而olso Integer intObj2。
是否有人知道爲什麼?在此先感謝

+0

請修復源代碼格式。 – 2011-02-17 15:27:38

回答

4

這只是因爲你的concept數組爲空。將您的第一行替換爲

int[] concept = new int[conceptsListGeneral.size()] 

然後您就可以使用它了。

編輯

哦,喜歡埃德溫說,不要忘記分配i值。

4

---編輯回答詢問的具體問題---

你拉出一個字符串,要求整數提供字符串編碼的整數值。

你怎麼知道字符串不爲空?也許該地圖沒有你問的具體鍵值。

你怎麼知道概念數組存在?也許你應該System.out.println(...)它看到它的對象標識符。

你怎麼知道字符串包含代表數字的字符?也許你正在處理一個沒有相應的int值的字符串?

在這些情況下,添加一些'System.out.println(...)'方法以確保您處理的是與您認爲正在處理的相同項目通常很有幫助。

祝你好運。

---原帖如下 -

在分配concept[i],你必須使用可變i找出您要設置其concept元素。你有沒有定義它?它的價值是什麼?

+0

答案在那裏,重要的部分是讓你思考如何消除可能的問題。這樣你將來總能得到你想要的東西。 – 2011-02-17 15:34:43

+0

通過調試,我知道String count有一個值,而olso Integer intObj2。 – 2011-02-17 15:39:19

+0

在你嘗試賦值它的第一個元素`concept [0]`之前,你是否在調試器中查看了`concept`的值? – 2011-02-17 15:41:44

1

創建int []數組。

int[] concept = new int[conceptsListGeneral.size()]; 
0

用途:

System.out.println(count); 

或您的首選日誌框架看,如果你肯定得到在關鍵的「數」 東西在你的地圖。你的結果看起來不一致。

當然,你還需要初始化你的概念[]數組。

0

從你粘貼的代碼你是概念數組仍然爲空。你需要初始化概念數組。

0

,我認爲你必須首先像一些維初始化數組「的概念= INT新[20]」

0

你必須定義concept,因此將有空間爲您打算投入它的所有元素。根據你的代碼,它必須像

int[] concept = new int[conceptsListGeneral.size()]; 
0

你會得到NullPointerException,因爲你的concept數組爲空。您需要初始化它:

int[] concept = new int[conceptsListGeneral.size()];