//: typeinfo/Robot.java
import java.util.*;
import net.mindview.util.*;public interface Robot {
  String name();
  String model();
  List<Operation> operations();
  class Test {
    public static void test(Robot r) {
      if(r instanceof Null)
        System.out.println("[Null Robot]");
      System.out.println("Robot name: " + r.name());
      System.out.println("Robot model: " + r.model());
      for(Operation operation : r.operations()) {
        System.out.println(operation.description());
        operation.command();
      }
    }
  }
} ///:~    if(r instanceof Null)
 
请问Null没有定义,为何能用,是JAVA自带的吗
上列出自JAVA编程思想 空对象

解决方案 »

  1.   

    “r instanceof Null” 这样的判断应该改为“r == null”。而且如果一个变量是 null,那么就不可调用它的任何方法:因为该变量没有指向任何对象。
      

  2.   

    楼上想问什么? null 是java自带的,在判断的时候可以作为一个条件,如果满足这个条件(null),则执行下面的代码,反之则不执行。
      

  3.   

    如果用接口取代具体类,那么就可以使用DynamicProxy来自动地创建空对象