2014-12-04 47 views
0

自從幾個小時以來一直在解決這個問題。包括通過回答以前的問題。 (我真的是新的Java,幾天前基本開始)Nullpointerexception並沒有編譯錯誤。找不到原因

它一直給我NullpointerException s在之間的第一類和hundRegister.add(nyHund);在第二類。

我不知道是什麼可能導致他們。有人有想法嗎?

代碼的目的(完成時)是將第三個類的對象添加到第二個類的列表中,並使用firstclass作爲「主程序」。

感謝您的幫助! 奧斯卡

頭等艙(主)

public class testning { 

    public static void main(String[] args) { 
     Hund nyHund = new Hund("Daisy", 13, "labrador", 22.3); 
     System.out.println(nyHund.toString()); 
     System.out.println(nyHund); 
     Register.läggTillHund(nyHund);  

    } 

} 

二等:

import java.util.ArrayList; 

public class Register { 


    private static ArrayList<Hund> hundRegister; 



    public static void läggTillHund(Hund nyHund){ 
     hundRegister.add(nyHund); 
     System.out.println(nyHund); 
     } 



     public Register(){ 
      hundRegister = new ArrayList<Hund>(); 
    } 


} 

三等

public class Hund { 

    private String namn; 
    private int ålder; 
    private double vikt; 
    private String ras; 

    public Hund(String hundnamn, int hundålder, String hundras, double hundvikt) { 
     this.namn = hundnamn; 
     this.ålder = hundålder; 
     this.ras = hundras; 
     this.vikt = hundvikt; 
    } 

    public String getNamn() { 
     return namn; 
    } 

    public int getÅlder() { 
     return ålder; 
    } 

    public double getSvanslängd() { 
     if ("tax".equals(ras)){ 
      return 3.7; 
     }else{ 
      return ((vikt*ålder)/10); 
     } 
    } 

    public String toString() { 
     return namn + "\n" + ålder + "\n"+ras+"\n"+vikt+"\n"+getSvanslängd(); 
    } 
} 
+0

你給了我們所有的代碼,但沒有異常堆棧跟蹤。異常堆棧跟蹤是診斷問題的關鍵。 – 2014-12-04 23:32:56

+0

我不認爲重複是非常有幫助的。他所要做的就是改變私人靜態ArrayList hundRegister;'到'私人靜態ArrayList hundRegister =新ArrayList ();' – August 2014-12-04 23:33:58

+0

正如我所說,這是非常新的。但這是你需要的嗎? 異常在線程 「主」 顯示java.lang.NullPointerException \t在Register.läggTillHund(Register.java:11)​​ \t在testning.main(testning.java:8) – Oskar 2014-12-04 23:35:00

回答

0

您正在訪問的靜態方法。在這種情況下,構造函數從不工作。使用private static ArrayList<Hund> hundRegister = new Arraylist<>() ;並刪除構造函數。要看看發生了什麼,添加System.out.println行來構建,你會發現它永遠不會工作

+0

@八月抱歉。我正在使用android應用程序,併發布兩次錯誤。 – 2014-12-04 23:45:37