java error java.lang.NullPointerException

时间:2014-02-24 17:55:23

标签: java arrays object null add

我写了这个方法,它将一个对象添加到数组中 但它让我犯了这个错误

Exception in thread "main" java.lang.NullPointerException

我检查所有变量,我认为没有空的:((

这是我的添加方法

    }
}

错误发生在add_b()方法

Exception in thread "main" java.lang.NullPointerException
    at Kindergarten.add_b(Kindergarten.java:39)
    at ClientClass.main(ClientClass.java:22)

2 个答案:

答案 0 :(得分:1)

你在Kindergarten构造函数中有错误,而不是初始化arr,你正在创建局部变量,它应该是这样的:

public Kindergarten(String name, int numOfbaby) {
    this.name = name;
    arr = new BABY[numOfbaby];
    currnt = 0;
}

其次,你有一个无限循环,移动指令和读取输入循环。

另一个问题是您的格式参数无效,只需使用简单连接

最后,但并非最不重要的是,System.out.println方法中缺少display_all

循环应该像这样开始:

Kindergarten k = new Kindergarten("baby", 10);

while (true) {
    System.out
            .println("what do you want to do? \n a-add a baby. \n b-search for a baby \n c-Delet a baby. \n d-Display all babys.\n e-how many babys need inoculation \n f-exit");
    char f = read.next().charAt(0);
//(...)
}

答案 1 :(得分:0)

首先,arr的初始化仅在第二个Kindergarten构造函数中发生。 在第一个Kindergarten构造函数中,arr是一个局部变量。 BABY arr[]=new BABY[numOfbaby];

此外,未使用setarrsetnamesetcurrnt等方法。如果不使用它就可以清理它们会很好。