这个问题似乎很基础,但我不知道为什么,有什么不对,我无法弄明白。
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 :(得分:4)
---编辑回答具体问题---
你正在拉出一个字符串,并要求Integer提供字符串中编码的整数值。
你怎么知道String不是null?也许地图没有您所询问的特定密钥的值。
你怎么知道概念数组存在?也许你应System.out.println(...)
看它的对象标识符。
你怎么知道字符串包含代表数字的字符?也许你正在处理一个没有相应int值的字符串?
在这些情况下,添加一些'System.out.println(...)'方法通常很有帮助,以确保您处理的是您认为正在处理的相同项目。
祝你好运。---原帖如下---
在分配concept[i]
时,您必须使用变量i
来确定要设置的concept
元素。你定义了吗?它的价值是什么?
答案 1 :(得分:4)
这只是因为你的concept
数组为空。用
int[] concept = new int[conceptsListGeneral.size()]
你会让它发挥作用。
修改强>
哦,就像埃德温所说的那样,不要忘记给i
分配一个值。
答案 2 :(得分:1)
创建int []数组。
int[] concept = new int[conceptsListGeneral.size()];
答案 3 :(得分:0)
使用:
System.out.println(count);
或您首选的日志记录框架,看看您是否肯定在地图上以“计数”键获取某些内容。您的结果与不是这种情况的结果一致。
另外,当然你需要初始化你的概念[]数组。
答案 4 :(得分:0)
你的概念数组仍然是null。您需要初始化概念数组。
答案 5 :(得分:0)
我认为你必须首先使用像“concept = new int [20]”
这样的维度来初始化你的数组答案 6 :(得分:0)
您必须定义concept
,以便为计划投入的所有元素留出空间。根据你的代码,它必须像
int[] concept = new int[conceptsListGeneral.size()];
答案 7 :(得分:0)
由于concept
数组为空,因此出现NullPointerException。你需要初始化它:
int[] concept = new int[conceptsListGeneral.size()];