黑马程序员技术交流社区
标题:
张老师交通灯管理系统中的一个问题
[打印本页]
作者:
DreamSeeker
时间:
2014-9-30 16:53
标题:
张老师交通灯管理系统中的一个问题
请问在张老师的视频末尾改代码时为什么将 nextLamp = Lamp.valueOf(next);这句话放进if语句里面程序就运行对了。
作者:
DreamSeeker
时间:
2014-10-1 08:15
呃,没人知道吗?还是我说的不够具体........
作者:
姜浩
时间:
2014-10-6 23:13
这段代码是下一个灯对象的代码吧。
作者:
姜浩
时间:
2014-10-6 23:26
Lamp nextLamp = null;
// 判断有没有下一个灯,有则将下一个灯变绿。
if (next != null)
{
nextLamp = Lamp.valueOf(next);
nextLamp.light();
System.out.println("绿灯从" + name() + "------------>切换为" + next);
}
复制代码
以上写的是这部分的正确代码。如楼主的问题,先看一下这个next变量。next是一个String类型的变量。它代表的是下一个绿灯的名字。
nextLamp = Lamp.valueOf(next);为什么要放到if中()?
Lamp.valueOf(next);这句代码的意思是通过next这个名字,来找到Lamp的对象。反之如果next等于null的时候,则会找不到这个Lamp对象。
Lamp.valueOf(null),这句话如果单独使用的话,必定会报出空指针异常。
我记得在这个项目中的时候,不会报错的。。。忘记了。
建议同学再遇到这种事情的时候,可以通过帮助文档,或者写一些测试代码试一试。
希望能帮到你,第一次回帖:loveliness:
作者:
DreamSeeker
时间:
2014-10-7 14:40
姜浩 发表于 2014-10-6 23:26
以上写的是这部分的正确代码。如楼主的问题,先看一下这个next变量。next是一个String类型的变量。它代表 ...
我自己在主函数里也单独试了这句话,会报出空指针异常,可为什么在这个项目里执行的时候没有任何提示呢?
作者:
354620815
时间:
2014-10-7 18:24
学习。。。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2