我写了这个方法,它将一个对象添加到数组中 但它让我犯了这个错误
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)
答案 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];
此外,未使用setarr
,setname
,setcurrnt
等方法。如果不使用它就可以清理它们会很好。