我目前正在编写一个命令行程序,它应该从文本文件中获取行并将数据添加到 HashMaps 数组中。我目前NullPointerException
在运行此方法时得到一个。
Public class Vaerdata {
String[] linje;
String line;
String line2;
HashMap<String, Stasjon> stasjonsmap = new HashMap<String, Stasjon>();
HashMap<String, Stasjon>[] regionmap = (HashMap<String, Stasjon>[]) new HashMap<?, ?>[6];
void init() throws IOException{
BufferedReader br = new BufferedReader(new FileReader("stasjoner_norge.txt"));
BufferedReader brData = new BufferedReader(new FileReader("klimadata2012.txt"));
for(int i = 0; i < 10; i++){
brData.readLine();
}
br.readLine();
while((line = br.readLine()) != null){
linje = line.split("\\s+");
stasjonsmap.put(linje[1], new Stasjon(Integer.parseInt(linje[1]), linje[2], Integer.parseInt(linje[3]), linje[4], linje[5], linje[6]));
}
if(linje[6].equals("AGDER")){
System.out.println(stasjonsmap.get(linje[1])); //DEBUG
regionmap[1].put(stasjonsmap.get(linje[1]).navn, stasjonsmap.get(linje[1]));
System.out.println(regionmap[1].get(stasjonsmap.get(linje[1]).navn)); //DEBUG
}
}
}
我NullPointerException
发生在这一行:
regionmap[1].put(stasjonsmap.get(linje[1]).navn, stasjonsmap.get(linje[1]));
所以我的问题是:当我声明了 with 数组时HashMaps
(<String, Stasjon>
Stasjon 是我的 Stasjon 类的对象,获取有关某些气象站的信息),为什么我在该行中出现错误?中的对象stasjonsmap.get(linje[1])
已被声明,我不明白为什么它不允许我在第二个哈希图中引用该对象。
文本文件中的每一行,在第一行之后(我在程序中跳过)如下所示:
36200 TORUNGEN_FYR 12 ARENDAL AUST-AGDER AGDER
提前; 谢谢你的帮助。