Hen*_*old 2 java arrays hashmap nullpointerexception
我目前正在编写一个命令行程序,它应该从文本文件中获取行并将数据添加到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
}
}
}
Run Code Online (Sandbox Code Playgroud)
我NullPointerException发生在这一行:
regionmap[1].put(stasjonsmap.get(linje[1]).navn, stasjonsmap.get(linje[1]));
Run Code Online (Sandbox Code Playgroud)
所以我的问题是:当我声明了数组HashMaps时<String, Stasjon>(Stasjon是我的Stasjon类的一个对象,获取有关某些气象站的信息),为什么我会在该行中出错?stasjonsmap.get(linje[1])已经声明了对象,我无法理解为什么它不允许我在第二个hashmap中引用这个对象.
第一行(我在程序中跳过)后的文本文件中的每一行都如下所示:
36200 TORUNGEN_FYR 12 ARENDAL AUST-AGDER AGDER
提前; 谢谢你的帮助.
在这里初始化HashMap数组时
HashMap<String, Stasjon>[] regionmap = (HashMap<String, Stasjon>[]) new HashMap<?, ?>[6];
数组中的所有值都是null.
然后尝试put在null-reference 上调用HashMap 的方法.
首先,你必须以某种方式初始化你的HashMaps:
for (int i = 0; i < regionmap.length; i++) {
regionmap[i] = new HashMap<String, Stasjon>();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
921 次 |
| 最近记录: |