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

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

空指針異常

package imooc_collection_lesson;


import java.util.ArrayList;

import java.util.Arrays;

import java.util.List;

import java.util.Scanner;


public class SetTest {

private static final List<Course> coursesToSelect = null;

public List<Course> coursesToCourses;

public SetTest(){

coursesToCourses=new ArrayList<Course>();

}

public void TestAdd(){

//創建一個課程對象,并通過add方法,添加到備選課程中去

Course cou1=new Course("1","數據結構");

coursesToCourses.add(cou1);

Course Temp=(Course)coursesToCourses.get(0);

//System.out.println("添加了一個課程:"+Temp.id+":"+Temp.name);

Course cou2=new Course("2", "C語言");

coursesToCourses.add(0,cou2);

Course Temp2=(Course)coursesToCourses.get(0);

//System.out.println("添加了一個課程:"+Temp2.id+":"+Temp2.name);

//以下方法會拋出數組下標越界異常

/* Course cou3=new Course("3", "大學英語");

courseToSelect.add(4,cou3);

*/


//Course cou3=new Course("1", "數據結構");

//courseToSelect.add(2,cou3);

Course[] course={new Course("3","離散數學"),

new Course("4","匯編語言")};

coursesToCourses.addAll(Arrays.asList(course));

Course Temp3=(Course) coursesToCourses.get(2);

Course Temp4=(Course) coursesToCourses.get(3);

//System.out.println("添加了兩門課程:"+Temp3.id+":"+Temp3.name

// +Temp4.id+":"+Temp4.name);

Course[] course2={new Course("5","高等數學"),

new Course("6","大學體育")};

coursesToCourses.addAll(2,Arrays.asList(course2));

Course Temp5=(Course) coursesToCourses.get(2);

Course Temp6=(Course) coursesToCourses.get(3);

//System.out.println("添加了兩門課程:"+Temp5.id+":"+Temp5.name

// +Temp6.id+":"+Temp6.name);

}

public void testForEach(){

System.out.println("有如下課程待選(通過for each訪問):");

for(Object obj:coursesToCourses){

Course sr=(Course) obj;

System.out.println("課程:"+sr.id+";"+sr.name);

}

}



/**

?* 測試List的contains方法

?*/

public void testListContains() {

// 取得備選課程序列的第0個元素

Course course = coursesToSelect.get(0);

// 打印輸出coursesToSelected是否包含course對象

System.out.println("取得課程:" + course.name);

System.out.println("備選課程中是否包含課程:" + course.name + ", " +?

coursesToSelect.contains(course));

}

public static void main(String[] args) {

// TODO Auto-generated method stub

SetTest st=new SetTest();

st.TestAdd();

st.testListContains();




}

public void testForEachForSet(Student student)

{

for (Course sr : student.Courses) {

System.out.println("選擇了課程:"+sr.id+":"+sr.name);

? ? }

}

}

執行時報錯Exception in thread "main" java.lang.NullPointerException at imooc_collection_lesson.SetTest.testListContains(SetTest.java:67) at imooc_collection_lesson.SetTest.main(SetTest.java:77)

正在回答

1 回答

coursesToSelect這個字段為空哦,所以報了Null 指針異常,而且定義為static final的話就永遠等于空啦

可以改成

private static List<Course> coursesToSelect = new ArrayList<Course>();

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

舉報

0/150
提交
取消
Java入門第三季
  • 參與學習       409766    人
  • 解答問題       4543    個

Java中你必須懂得常用技能,不容錯過的精彩,快來加入吧

進入課程

空指針異常

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

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

幫助反饋 APP下載

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

公眾號

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