為什么會(huì)出現(xiàn)java.lang.nullpointerexception錯(cuò)誤
? public void testSetContains(){
? //提示輸入課程名稱
? System.out.println("請(qǐng)輸入學(xué)生已選的課程名稱:");
? String name=console.next();
? //創(chuàng)建一個(gè)新的課程對(duì)象,ID和名稱,與course對(duì)象完全一樣
? Course course2=new Course();
? course2.name=name;
? System.out.println("新創(chuàng)建課程:"+course2.name);
? System.out.println("備選課程中是否包含課程:"+course2.name+","+student.courses.contains(course2));
? }
執(zhí)行到畫線句出現(xiàn)錯(cuò)誤,問題應(yīng)該在student.courses.contains(course2),但是已經(jīng)定義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方法里面調(diào)用了hashcode()和equal()方法,當(dāng)hashcode()方法返回TRUE時(shí),才繼續(xù)調(diào)用equals()方法,所以這個(gè)地方需要重寫hashcode()方法
2018-06-28
我也犯了相同的錯(cuò)誤,原因在創(chuàng)建學(xué)生并選課的方法里面,public void createStudentAndSelectCourses()的第一行代碼是student=new Student("1","小明"),而不是Student?student=new Student("1","小明"),因?yàn)閟tudent已經(jīng)在前面定義過的,是公有屬性
2017-10-06
創(chuàng)建學(xué)生對(duì)象并選課方法里面的第一行代碼? ?s tudent = new Student("1", "小明");你看你的是這個(gè)么
2017-09-22
testSetContains(Student student)
2017-09-06
你這個(gè)student對(duì)象里沒有傳進(jìn)去東西,是空的
2017-05-24
我記得老師在講這個(gè)的時(shí)候好像在Student類中重寫了equal()方法,你再看看原視頻,只要是照著來的,應(yīng)該不會(huì)有錯(cuò)