亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

為什么會出現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>();?

}

}


正在回答

6 回答

contains方法里面調用了hashcode()和equal()方法,當hashcode()方法返回TRUE時,才繼續調用equals()方法,所以這個地方需要重寫hashcode()方法

0 回復 有任何疑惑可以回復我~

我也犯了相同的錯誤,原因在創建學生并選課的方法里面,public void createStudentAndSelectCourses()的第一行代碼是student=new Student("1","小明"),而不是Student?student=new Student("1","小明"),因為student已經在前面定義過的,是公有屬性

0 回復 有任何疑惑可以回復我~

創建學生對象并選課方法里面的第一行代碼? ?s tudent = new Student("1", "小明");你看你的是這個么

0 回復 有任何疑惑可以回復我~

testSetContains(Student student)

0 回復 有任何疑惑可以回復我~

你這個student對象里沒有傳進去東西,是空的

0 回復 有任何疑惑可以回復我~

我記得老師在講這個的時候好像在Student類中重寫了equal()方法,你再看看原視頻,只要是照著來的,應該不會有錯

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

為什么會出現java.lang.nullpointerexception錯誤

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號