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