你自以为是的异常 
先来两句代码: 
 
NullTest myNullTest = null; 
System.out.println(myNullTest.getInt()); 
 
相信很多人看到这段代码时,都会自以为是的说:NullPointerException。果真如此吗?你还没看到NullTest 这个类是如何定义的呢。现在看看这个类的定义: 
 
class NullTest { 
     public static int getInt() { 
         return 1; 
     } 
} 
 
发现getInt()方法体没有任何类变量和类方法的使用,因此这里会正常输出1. 
记住:类变量和类方法的使用,仅仅依赖引用的类型。即使引用为null,仍然可以调用。从良好实践的角度来看,明智的做法是使用NullTest.getInt()来代替myNullTest.getInt(),但谁不不能保证不会碰到这样的代码,因此还是小心为妙。 
 
 |   
        
 
    
    
    
     
 
 |