发布更改数据类型Java

时间:2011-02-17 15:26:08

标签: java types

这个问题似乎很基础,但我不知道为什么,有什么不对,我无法弄明白。

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 有谁知道为什么?提前致谢

8 个答案:

答案 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()];