package?com.imooc.collection;
import?java.util.List;
import?java.util.ArrayList;;
//測試泛型
public?class?TestGeneric?{
//帶有泛型Course的list
public?List<Course>?courses?;
//編寫構造器,在構造器中初始化courses屬性
public?void?testGeneric(){
this.courses?=?new?ArrayList<Course>();
}
/**
?*?測試添加
?*?@param?args
?*/
public?void?testAdd(){
Course?cr1?=?new?Course("1","大學英語");
courses.add(cr1);
//在泛型集合中,不能添加規(guī)定類型以外的類型,否則會報錯
//courses.add("在list中嘗試添加字符串。");
Course?cr2?=?new?Course?("2","大學數(shù)學");
courses.add(cr2);
}
/**
?*?測試循環(huán)遍歷
?*?@param?args
?*/
public?void?testForEach(){
System.out.println("有如下課程待選(通過foreach語句)");
//courses中存的對象是Course,這里不用先取出object類型對象再轉換(泛型好處)
for(Course?cr?:?courses){
System.out.println(cr.id+cr.name);
}
}
public?static?void?main(String[]?args)?{
//?TODO?Auto-generated?method?stub
TestGeneric?tg?=?new?TestGeneric();
tg.testAdd();
tg.testForEach();
}
}
報錯:
Exception?in?thread?"main"?java.lang.NullPointerException
at?com.imooc.collection.TestGeneric.testAdd(TestGeneric.java:21)
at?com.imooc.collection.TestGeneric.main(TestGeneric.java:43)
2016-10-03
第8行:public?List<Course>?courses?;
courses未初始化,默認值為null,用null調用方法就會出現(xiàn)NullPointerException(空指針異常),初始化對象就好了
2017-12-26
?//編寫構造器,在構造器中初始化courses屬性
????public?void?testGeneric(){
????this.courses?=?new?ArrayList<Course>();
????}
第一錯誤出現(xiàn)在這里 這個地方 應該是個構造器。題目中這么寫只是個普通方法。
第二去掉void 也沒有用? 。去掉void 程序編譯都通不過
正確的寫法應該是 構造器名次跟類名 完全一致? 并且大小寫也要完全一致
應該是沒有void 并且構造器名為?TestGeneric? 這樣實例化的時候就會執(zhí)行構造器 了
? public? TestGeneric(){
????this.courses?=?new?ArrayList<Course>();
????}
2016-10-03
public?void?testGeneric(){
????this.courses?=?new?ArrayList<Course>();
????}
void返回類型為空,所以輸入ID后返回就為空;應該把void去掉 ? ??