為什么會出現java.lang.nullpointerexception錯誤
? public void testSetContains(){
? //提示輸入課程名稱
? System.out.println("請輸入學生已選的課程名稱:");
? String name=console.next();
? //創建一個新的課程對象,ID和名稱,與course對象完全一樣
? Course course2=new Course();
? course2.name=name;
? System.out.println("新創建課程:"+course2.name);
? System.out.println("備選課程中是否包含課程:"+course2.name+","+student.courses.contains(course2));
? }
執行到畫線句出現錯誤,問題應該在student.courses.contains(course2),但是已經定義public Student student; ?而且
public class Student {
public String id;
public String name;
public Set<Course> courses;//Set和List一樣都是Collection的子接口
public Student(String id,String name){
this.id=id;
this.name=name;
this.courses=new HashSet<Course>();?
}
}
2017-05-24
contains方法里面調用了hashcode()和equal()方法,當hashcode()方法返回TRUE時,才繼續調用equals()方法,所以這個地方需要重寫hashcode()方法
2018-06-28
我也犯了相同的錯誤,原因在創建學生并選課的方法里面,public void createStudentAndSelectCourses()的第一行代碼是student=new Student("1","小明"),而不是Student?student=new Student("1","小明"),因為student已經在前面定義過的,是公有屬性
2017-10-06
創建學生對象并選課方法里面的第一行代碼? ?s tudent = new Student("1", "小明");你看你的是這個么
2017-09-22
testSetContains(Student student)
2017-09-06
你這個student對象里沒有傳進去東西,是空的
2017-05-24
我記得老師在講這個的時候好像在Student類中重寫了equal()方法,你再看看原視頻,只要是照著來的,應該不會有錯