Java中空对象调用函数一定会崩溃吗?答案是否定的。

举报
liuzhen007 发表于 2021/05/28 07:09:41 2021/05/28
【摘要】 Java中空对象调用函数一定会崩溃吗?答案是否定的。 以我们一般的认知来看,一个空对象在调用一个函数时,即使不崩溃也会抛出异常,但事实确实存在特例。 不解释了,直接看例子: public class TestDemo { public static void func() { System.out.println("This is func()..."); } publ...

Java中空对象调用函数一定会崩溃吗?答案是否定的。

以我们一般的认知来看,一个空对象在调用一个函数时,即使不崩溃也会抛出异常,但事实确实存在特例。

不解释了,直接看例子:


  
  1. public class TestDemo {
  2. public static void func() {
  3. System.out.println("This is func()...");
  4. }
  5. public static void main(String[]args) {
  6. TestDemo tDemo = null;
  7. tDemo.func();//放心吧,这行代码不会崩溃的,其实等价于TestDemo.func();
  8. }
  9. }

原因:func()是类TestDemo的静态方法,也属于类的成员方法。通常使用类名作为调用者来调用类的静态方法,其实也可以使用类对象来调用类的静态方法,其效果是完全一样的。当使用实例对象调用类的静态方法时,实际上是委托给类来访问调用的,此时即使这个实例对象是空的,它也可以访问到这个静态成员方法,而不发生空指针异常崩溃。但是一般不推荐这样使用,还是用类名称来直接调用类的静态方法吧。

文章来源: liuzhen.blog.csdn.net,作者:Data-Mining,版权归原作者所有,如需转载,请联系作者。

原文链接:liuzhen.blog.csdn.net/article/details/87898773

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。