出現(xiàn)空指針異常問題
? 當(dāng)我用Student student 對象去調(diào)用courses時候,他報出來空指針異常,調(diào)用沒有初始化的對象
System.out.println("備選課程中是否包含課程:"+course2.name+","+
? ? student.courses.contains(course2));
請輸入學(xué)生已選的課程名稱:
數(shù)據(jù)結(jié)構(gòu)
新創(chuàng)建課程:數(shù)據(jù)結(jié)構(gòu)
Exception in thread "main" java.lang.NullPointerException
at a1.SetTest.testSetContains(SetTest.java:118)
at a1.SetTest.main(SetTest.java:129)
我又換成coursesToSelect對象去調(diào)用,程序就能正常運行,這是為什么?為什么會沒有初始化對象?視頻里的也是直接聲明一個student對象
? System.out.println("備選課程中是否包含課程:"+course2.name+","+
? ? coursesToSelect.contains(course2));
請輸入學(xué)生已選的課程名稱:
數(shù)據(jù)結(jié)構(gòu)
新創(chuàng)建課程:數(shù)據(jù)結(jié)構(gòu)
備選課程中是否包含課程:數(shù)據(jù)結(jié)構(gòu),true
2018-08-22
student類源碼
public class Student {
?public String id;
?public String name;
?
?public Set<Course> courses; //存儲學(xué)生課程信息
?
?@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((name == null) ? 0 : name.hashCode());
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (!(obj instanceof Student))
return false;
Student other = (Student) obj;
if (name == null) {
if (other.name != null)
return false;
} else if (!name.equals(other.name))
return false;
return true;
}
public Student(String id,String name){
this.id=id;
this.name=name;
this.courses = new HashSet<Course>();//實例化
?}
}
2018-08-22
看一下你student類是什么定義的?你發(fā)一下student源代碼