Nullpointerexception并没有编译错误。无法找到原因

时间:2014-12-04 23:29:59

标签: java oop arraylist

几个小时以来一直在努力解决这个问题。包括回顾以前的问题。 (我在Java中真的很新,基本上几天前就开始了)

它会在第一堂课的NullpointerException与第二堂课的Register.läggTillhund(nyHund);之间不断提供hundRegister.add(nyHund);

我不知道是什么原因造成的。有没有人有想法?

代码的目的(完成后)是使用firstclass作为"主程序"将第3类中的对象添加到第二类中的列表中。

感谢您的帮助! 奥斯卡

头等舱(主要)

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();
    }
}

1 个答案:

答案 0 :(得分:0)

您正在访问静态方法。在这种情况下,构造函数从不工作。使用private static ArrayList<Hund> hundRegister = new Arraylist<>() ;并删除构造函数。要查看发生了什么,请添加System.out.println行进行构建,您将看到它将无法正常工作