第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

編譯沒錯,執(zhí)行的時候報錯Exception in thread "main" java.lang.NullPointerException為什么?

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)


正在回答

3 回答

第8行:public?List<Course>?courses?;

courses未初始化,默認值為null,用null調用方法就會出現(xiàn)NullPointerException(空指針異常),初始化對象就好了

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

慕粉3168680 提問者

謝謝~~
2016-10-05 回復 有任何疑惑可以回復我~
#2

慕粉3168680 提問者

謝謝~~
2016-10-05 回復 有任何疑惑可以回復我~
#3

慕粉3586557

我的也是,這不是和老師給的一樣嗎?怎么復制了老師的就行,求指點
2017-02-08 回復 有任何疑惑可以回復我~
#4

實時編程

這個地方 是構造方法 寫錯了 構造方法應該是這個樣子的 public TestGeneric(){ this.courses = new ArrayList<Course>(); } 這么改就可以
2017-12-26 回復 有任何疑惑可以回復我~
查看1條回復

?//編寫構造器,在構造器中初始化courses屬性

????public?void?testGeneric(){

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

????}

第一錯誤出現(xiàn)在這里 這個地方 應該是個構造器。題目中這么寫只是個普通方法。

第二去掉void 也沒有用? 。去掉void 程序編譯都通不過

正確的寫法應該是 構造器名次跟類名 完全一致? 并且大小寫也要完全一致

應該是沒有void 并且構造器名為?TestGeneric? 這樣實例化的時候就會執(zhí)行構造器 了

? public? TestGeneric(){

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

????}


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

public?void?testGeneric(){

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

????}

void返回類型為空,所以輸入ID后返回就為空;應該把void去掉 ? ??


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

慕粉3168680 提問者

謝謝~~
2016-10-05 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

編譯沒錯,執(zhí)行的時候報錯Exception in thread "main" java.lang.NullPointerException為什么?

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

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

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

公眾號

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