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

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

泛型實踐時出錯!哪里不對?

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","數據結構");

courses.add(cr1);

Course ?cr2=new Course("2","高等數學");

courses.add(cr2);

//泛類型的集合中不能添加泛類型規定之外的對象,否則會報錯

//courses.add("我是字符串")

//Course ?cr2=new Course("2","JAVA基礎");

//courses.add(cr2);

}

/*

* 測試循環遍歷的方法

*?

*/

public void testForEach(){

for(Course c:courses){

System.out.println(c.id+":"+c.name);

}

}

/**

* 泛型集合可以添加泛型的子類型的對象實例

* @param args

*/


public void testChild(){

ChildCourse ccr=new ChildCourse();

ccr.id="3"; ?ccr.name="我是子類型的課程對象實例";

courses.add(ccr);

}

public static void main(String[] args) {

// TODO Auto-generated method stub

? ? ? ?testGeneric tg=new testGeneric();

? ? ? ?tg.testAdd();

? ? ? ?tg.testForEach();

? ? ? ?tg.testChild();

}


}

運行時報錯:

Exception in thread "main" java.lang.NullPointerException

at collection.testGeneric.testAdd(testGeneric.java:16)

at collection.testGeneric.main(testGeneric.java:48)


正在回答

3 回答

public void TestGeneric(){

this.courses=new ArrayList<Course>();

}

把這段代碼的void去掉。里面this.courses=new ArrayList<Course>();的初始化是要寫在構造方法內。

Exception in thread "main" java.lang.NullPointerException : 表示空指針也就是說List集合沒有初始化。

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

煎餅學徒 提問者

非常感謝!明白啦!
2016-03-14 回復 有任何疑惑可以回復我~

list一定要初始化否則會報錯?

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

構造方法不能加返回值類型!

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

煎餅學徒 提問者

也非常感謝你的幫助,問題解決啦!
2016-03-14 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

泛型實踐時出錯!哪里不對?

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

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

幫助反饋 APP下載

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

公眾號

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