A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© BlackHorse001 中级黑马   /  2015-9-7 09:06  /  536 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

你自以为是的异常
先来两句代码:

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(),但谁不不能保证不会碰到这样的代码,因此还是小心为妙。

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马