Java中空对象调用函数一定会崩溃吗?答案是否定的。
【摘要】 Java中空对象调用函数一定会崩溃吗?答案是否定的。
以我们一般的认知来看,一个空对象在调用一个函数时,即使不崩溃也会抛出异常,但事实确实存在特例。
不解释了,直接看例子:
public class TestDemo { public static void func() { System.out.println("This is func()..."); } publ...
Java中空对象调用函数一定会崩溃吗?答案是否定的。
以我们一般的认知来看,一个空对象在调用一个函数时,即使不崩溃也会抛出异常,但事实确实存在特例。
不解释了,直接看例子:
-
public class TestDemo {
-
public static void func() {
-
System.out.println("This is func()...");
-
}
-
public static void main(String[]args) {
-
TestDemo tDemo = null;
-
tDemo.func();//放心吧,这行代码不会崩溃的,其实等价于TestDemo.func();
-
}
-
}
原因:func()是类TestDemo的静态方法,也属于类的成员方法。通常使用类名作为调用者来调用类的静态方法,其实也可以使用类对象来调用类的静态方法,其效果是完全一样的。当使用实例对象调用类的静态方法时,实际上是委托给类来访问调用的,此时即使这个实例对象是空的,它也可以访问到这个静态成员方法,而不发生空指针异常崩溃。但是一般不推荐这样使用,还是用类名称来直接调用类的静态方法吧。
文章来源: liuzhen.blog.csdn.net,作者:Data-Mining,版权归原作者所有,如需转载,请联系作者。
原文链接:liuzhen.blog.csdn.net/article/details/87898773
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)