第二个循环的空指针

时间:2016-03-11 10:14:31

标签: java nullpointerexception hashmap

我对我的代码有疑问。这是我的代码

Map <String, hewan> hwn = new HashMap<String,hewan>();
 for (int j = 1 ; j<=bacaInginHewan; j++){  
    hewan hewan = new hewan();
    String [] bacaJumlah =br.readLine().split(" ");
    namaHewan=bacaJumlah[0];
    ingin = Integer.parseInt(bacaJumlah[1]);
    if (hwn.containsKey(namaHewan)){
      if (hwn.get(namaHewan).jenisOperasi.equals("vivipar")){
        int jumlahAwal = hwn.get(namaHewan).jumlah;
        int batasAkhir = ingin + jumlahAwal ;
        hewan.setIngin(batasAkhir);
        hewan.recvivipar(jumlahAwal);
        System.out.println("butuh "+hewan.getIterasiVivi()+" siklus untuk "+batasAkhir+" "+namaHewan);
        hewan.setJumlah(batasAkhir);
        hwn.put(namaHewan, hewan);
      } else if (hwn.get(namaHewan).jenisOperasi.equals("ovipar")){
         int jumlahAwal = hwn.get(namaHewan).jumlah;
         int batasAkhir = ingin + jumlahAwal ;
         hewan.setIngin(batasAkhir);
         hewan.recOvipar(jumlahAwal);
         System.out.println("butuh "+hewan.getIterasiVivi()+" siklus untuk "+batasAkhir+" "+namaHewan);
         hewan.setJumlah(batasAkhir);
         hwn.put(namaHewan, hewan);
   }

我的问题是,为什么它在这个if子句中使用相同的namaHewan转为第二个循环的空指针。谢谢你的解释

if (hwn.get(namaHewan).jenisOperasi.equals("vivipar"))

1 个答案:

答案 0 :(得分:0)

hwn.get(namaHewan).jenisOperasi似乎是null。尝试了解调试以更轻松地解决此类问题。