我是java新手,我的代码中有这个例外:
Exception in thread "main" java.lang.NullPointerException
at Course.addStudents(Course.java:31)
at Third.main(Third.java:28)
Course.java
public boolean addStudents(Student newStudent){
for (Student student : students){
if (student.getID()== newStudent.getID()){
return false;
}
}
if(numberOfStudents < capacity){
students[numberOfStudents++] = newStudent;
return true;
}
return false;
}
Third.java
c1.addStudents(s1);
我试过解决它但没有实现。我搜索了它,我猜问题是初始化。这是真的吗?如果是的话,我不知道如何处理,任何想法??
答案 0 :(得分:3)
根据你的评论
for (Student student : students){
学生是一个数组而没有初始化。
由于您正在使用数组,因此初始化将是
Student[] students = new Student[capacity];
Remmeber,当你初始化一个数组时,除非你填充它们,否则默认值将是null
。在你的循环中,你必须再次检查null
导致NullPOinterException
for (Student student : students){
if (student !=null && student.getID()== newStudent.getID()){
return false;
}
}
答案 1 :(得分:2)
问题,确实在初始化,下面的一个或多个未初始化:
newStudent,学生。
因为Student是一个对象,它需要初始化才能使用它,而不是原始类型。