誰能幫忙解決這個問題 空指針異常
package com.XuanKe;
import java.util.Arrays;
import java.util.Iterator;
import java.util.List;
import java.util.ArrayList;
/**
?* 備選課
?* @author Administrator
?*
?*/
public class BeiXUanKeTest {
?private List CourseToSelect;
?public List getCourseToSelect() {
??return CourseToSelect;
?}
?public void setCourseToSelect(List courseToSelect) {
??this.CourseToSelect = new ArrayList();
?}
?@SuppressWarnings("unchecked")
?public void CourseAdd(){//添加備選課程
??Course cr1=new Course();
??cr1.setId("1");
??cr1.setName("數據結構");
??CourseToSelect.add(cr1);
??Course temp =(Course) CourseToSelect.get(0);
??System.out.println("添加課程為:"+temp.getId()+" :"+temp.getName());
??
??
??Course cr2=new Course();
??cr2.setId("2");
??cr2.setName("C語言");
??CourseToSelect.add(0, cr2);
??Course temp2=(Course) CourseToSelect.get(1);
??System.out.println("添加課程為:"+temp2.getId()+"?。?+temp2.getName());
??
??//數組添加課程
??Course cr3=new Course();
??cr3.setId("3");
??cr3.setName("離散數學");
??Course cr4=new Course();
??cr4.setId("4");
??cr4.setName("匯編語言");
??Course[] course={cr3,cr4};
??CourseToSelect.addAll(Arrays.asList(course));
??Course temp3 =(Course) CourseToSelect.get(2);
??Course temp4 =(Course) CourseToSelect.get(3);
??System.out.println("添加課程為:"+temp3.getId()+" "+temp3.getName()+" "+temp4.getId()+" "+temp4.getName());
??
??
??Course cr5=new Course();
??cr5.setId("5");
??cr5.setName("高等數學");
??Course cr6=new Course();
??cr6.setId("6");
??cr6.setName("大學英語");
??Course[] course1={cr5,cr6};
??CourseToSelect.addAll(2,Arrays.asList(course1));
??Course temp5 =(Course) CourseToSelect.get(2);
??Course temp6 =(Course) CourseToSelect.get(3);
??System.out.println("添加課程為:"+temp5.getId()+" "+temp5.getName()+" "+temp6.getId()+" "+temp6.getName());
??
?}
?//輸出備選課程
?public void getBeiXuan(){
??//用數組
??System.out.println("有如下備選課:");
??for(int i=0;i<CourseToSelect.size();i++){
???CourseToSelect.get(i);
???Course cr=(Course) CourseToSelect.get(i);
???System.out.println("課程:"+cr.getId()+":"+cr.getName());
??}
??//用迭代器
??System.out.println("有如下備選課(迭代器):");
??Iterator it=CourseToSelect.iterator();
??while(it.hasNext()){
???Course cr=(Course) it.next();
???System.out.println("課程:"+cr.getId()+":"+cr.getName());
??}
??//foreaach
??System.out.println("有如下備選課(foreach):");
??for(Object obj:CourseToSelect){
???Course cr=(Course) obj;
???System.out.println("課程"+cr.getId()+" :"+cr.getName());
??}
?}
?public static void main(String[] args) {
??BeiXUanKeTest bx=new BeiXUanKeTest();
??bx.CourseAdd();
??bx.getBeiXuan();
?}
?
}
package com.XuanKe;
import java.util.HashSet;
import java.util.Set;
/**
?* 學生類
?* @author Administrator
?*
?*/
public class Student {
?private String id;
?private String name;
?private Set course;
?public String getId() {
??return id;
?}
?public void setId(String id) {
??this.id = id;
?}
?public String getName() {
??return name;
?}
?public void setName(String name) {
??this.name = name;
?}
?public Set getCourse() {
??return course;
?}
?public void setCourse(Set course) {
??this.course = new HashSet();
?}
?
}
package com.XuanKe;
/**
?* 課程類
?* @author Administrator
?*
?*/
public class Course {
?private String id;
?private String name;
?public String getId() {
??return id;
?}
?public void setId(String id) {
??this.id = id;
?}
?public String getName() {
??return name;
?}
?public void setName(String name) {
??this.name = name;
?}
}
2016-10-07
我覺得首先空指針異常是你創(chuàng)建一個對象,沒有進行實例化就使用的話就會出現(xiàn)空指針異常,你定義了List接口courseToSelect,雖然定義了set方法去實現(xiàn)接口,但是你使用courseToSelect時并沒有調用set方法,也就是說CourseToSelect并沒有實現(xiàn)。應該是吧,希望對你有所幫助?。。?!
2016-10-07
共同進步!