0

我正在做一个学校作业,我应该像这样制作一个哈希图数组:

HashMap<String, Person>[] mood = (HashMap<String, Person>[])  new HashMap<?, ?>[6];

我从一个文件中读取,它是这样的。问题是它给了 NullPointerException 我试图把心情变成心情[0]!在我的书中找不到任何关于 hashmap-array 如何工作的信息.. :( 会很高兴获得所有帮助 (:

Person p = new Person();
p.name = word[1];
p.age = word[2];
p.mood = word[3];

people.put(p.name, p);

 if (p.mood.equals("HAPPY")) {
 mood[0].put(p.mood, p); //NullPointerException 
 }
4

2 回答 2

2

基本上,您确实初始化了一个心情数组,但它是用nulls 初始化的。因此,在您可以在心情[0](或任何其他索引)上调用任何方法之前,您需要在心情[0] 中放置一个非空对象。

于 2012-10-31T12:02:34.843 回答
1

当您创建对象数组时,数组元素最初为 null,因此在使用 之前mood[0],您需要使用 的实例填充它HashMap<String, Person>

于 2012-10-31T12:01:22.833 回答