问答详情
源自:4-4 学生选课---添加课程 Ⅰ

空指针异常啊

import java.util.ArrayList;

import java.util.List;


public class ListTest {

public List courseToSelect;

public ListTest() {

List courseToSelect = new ArrayList();

}

public void testAdd() {

//往courseToSelect添加课程;

Course cr1 = new Course("1","数据结构");

courseToSelect.add(cr1);

Course temp = (Course)courseToSelect.get(0);

System.out.println("添加了一门课程:"+temp.id+":"+temp.name);

}

public static void main(String[] args) {

ListTest lt = new ListTest();

lt.testAdd();

}

}



提问者:倩与倩寻 2018-03-24 17:28

个回答

  • 烟花飞满天
    2018-03-24 19:13:15
    已采纳

    public ListTest() {

    List courseToSelect = new ArrayList();


    }

    你这个 为什么还要定义 courseToSelect  把List去掉

  • 泰勒伯顿
    2018-04-10 11:15:00

    你这个就是空指针啊,你在类变量中:public List courseToSelect;没有分配空间

    在后面的构造函数中 :List courseToSelect = new ArrayList();相当于是定义了一个局部变量

    局部变量在在函数体外面无效,所哟你后面使用的变量courseToSelect都是第一次在定义但是没有分配空间的变量,所以就出现了空指针异常

    在构造函数中一般不需要定义新的变量:所以构造函数中是this.courseToSelect = new ArrayList();