泛型實(shí)踐時出錯!哪里不對?
package collection;
import java.util.ArrayList;
import java.util.List;
public class testGeneric {
//帶有泛型——Course 的List類型 屬性
public List<Course> ?courses;
public void TestGeneric(){
this.courses=new ArrayList<Course>();
}
public void testAdd(){
Course cr1=new Course("1","數(shù)據(jù)結(jié)構(gòu)");
courses.add(cr1);
Course ?cr2=new Course("2","高等數(shù)學(xué)");
courses.add(cr2);
//泛類型的集合中不能添加泛類型規(guī)定之外的對象,否則會報錯
//courses.add("我是字符串")
//Course ?cr2=new Course("2","JAVA基礎(chǔ)");
//courses.add(cr2);
}
/*
* 測試循環(huán)遍歷的方法
*?
*/
public void testForEach(){
for(Course c:courses){
System.out.println(c.id+":"+c.name);
}
}
/**
* 泛型集合可以添加泛型的子類型的對象實(shí)例
* @param args
*/
public void testChild(){
ChildCourse ccr=new ChildCourse();
ccr.id="3"; ?ccr.name="我是子類型的課程對象實(shí)例";
courses.add(ccr);
}
public static void main(String[] args) {
// TODO Auto-generated method stub
? ? ? ?testGeneric tg=new testGeneric();
? ? ? ?tg.testAdd();
? ? ? ?tg.testForEach();
? ? ? ?tg.testChild();
}
}
運(yùn)行時報錯:
Exception in thread "main" java.lang.NullPointerException
at collection.testGeneric.testAdd(testGeneric.java:16)
at collection.testGeneric.main(testGeneric.java:48)
2016-03-03
public void TestGeneric(){
this.courses=new ArrayList<Course>();
}
把這段代碼的void去掉。里面this.courses=new ArrayList<Course>();的初始化是要寫在構(gòu)造方法內(nèi)。
Exception in thread "main" java.lang.NullPointerException : 表示空指針也就是說List集合沒有初始化。
2016-06-06
list一定要初始化否則會報錯?
2016-03-03
構(gòu)造方法不能加返回值類型!