为了账号安全,请及时绑定邮箱和手机立即绑定

把 this.courseToSelect=new ArrayList(); 改为 List courseToSelect=new ArrayList(); 发生异常

把  this.courseToSelect=new ArrayList();

改成   List courseToSelect=new ArrayList();

为什么在运行时会有异常呢?

请指教

http://img1.sycdn.imooc.com//5983527c0001b28a05740077.jpg


正在回答

3 回答

你的List (指向类型)courseToSelect (属性)是在无参的构造方法里的 叫局部变量,也可以理解为方法内的属性, 而你要初始化的是本类的courseToSelect(属性)。所以要用this这个关键字(this是当前对象,this.属性 表示操作当前对象的方法

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

南图

不好意思 打快了,最后两个字(方法改成属性)!!!
2017-08-14 回复 有任何疑惑可以回复我~

你可以在类中声明的时候直接定义。

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

构造函数里面的

this.courseToSelect=new ArrayList();

是为了给成员变量创建一个对象,并用courseToSelect对其应用,this关键字表示这个courseToSelect属于对象的,如果改成:

List courseToSelect=new ArrayList();

这个courseToSelect就变成了局部变量,并没有传递给成员变量,因此后面调用coursesToSelect.add()时,实际上对象的courseToSelect并没有通过构造函数初始化,仍然是一个NULL,运行时就会出现空指针异常。

3 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

把 this.courseToSelect=new ArrayList(); 改为 List courseToSelect=new ArrayList(); 发生异常

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信