qq_海赋_0
2017-08-04 00:44
把 this.courseToSelect=new ArrayList();
改成 List courseToSelect=new ArrayList();
为什么在运行时会有异常呢?
请指教
你的List (指向类型)courseToSelect (属性)是在无参的构造方法里的 叫局部变量,也可以理解为方法内的属性, 而你要初始化的是本类的courseToSelect(属性)。所以要用this这个关键字(this是当前对象,this.属性 表示操作当前对象的方法
你可以在类中声明的时候直接定义。
构造函数里面的
this.courseToSelect=new ArrayList();
是为了给成员变量创建一个对象,并用courseToSelect对其应用,this关键字表示这个courseToSelect属于对象的,如果改成:
List courseToSelect=new ArrayList();
这个courseToSelect就变成了局部变量,并没有传递给成员变量,因此后面调用coursesToSelect.add()时,实际上对象的courseToSelect并没有通过构造函数初始化,仍然是一个NULL,运行时就会出现空指针异常。
Java入门第三季
409792 学习 · 4340 问题
相似问题