- 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: |