2011-02-17 95 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()];