<small id='AbLy'></small> <noframes id='JHMmphf'>

  • <tfoot id='t2AGPNmEog'></tfoot>

      <legend id='hvcRPM'><style id='rWx6oFv'><dir id='YOFHr0T3sc'><q id='UgFN2L9WTr'></q></dir></style></legend>
      <i id='FgepTI4f'><tr id='pDrbIo'><dt id='9BYh'><q id='IDYix'><span id='MX6IP'><b id='6QaDvO2'><form id='5ysOeCad'><ins id='adLuezfq'></ins><ul id='SHRlCO3'></ul><sub id='kADulC'></sub></form><legend id='psG6'></legend><bdo id='cQGDRms'><pre id='wKne2Jlf'><center id='tp9sOmNoF'></center></pre></bdo></b><th id='og8IikGZN'></th></span></q></dt></tr></i><div id='P3zZjB'><tfoot id='him8n'></tfoot><dl id='pzLsKYJ'><fieldset id='X2aU9'></fieldset></dl></div>

          <bdo id='kaECQmrP'></bdo><ul id='YL9FbQaUfB'></ul>

          1. <li id='6NfzV'></li>
            登陆

            1号娱乐app网址-求求你别再写 bug 了,老猿通知你防止空指针的 5 个事例!

            admin 2019-05-14 221人围观 ,发现0个评论

            空指针是咱们 Java 开发人员常常遇到的一个根本反常,这是一个极端遍及但好像又无法彻底治愈的问题。

            本文,栈长将带你了解什么是空指针,还有怎么有用的防止空指针。

            什么是空指针?

            当一个变量的值为 null 时,在 Java 里边表明一个不存在的空目标,没有实践内容,没有给它分配内存,null 也是目标成员变量的默许值。

            所以,一个目标假如没有进行初始化操作,这时分,假如你调用这个目标的办法或许变量,就会呈现空指针反常。

            如下面示例会发作空指针反常:

            Object object = null;
            String string = objec1号娱乐app网址-求求你别再写 bug 了,老猿通知你防止空指针的 5 个事例!t.toString();

            image.png

            从类结构图来看,空指针它是归于运行时反常 RuntimeException 的子类,它1号娱乐app网址-求求你别再写 bug 了,老猿通知你防止空指针的 5 个事例!不是捕获型的,只要在程序运行时才或许报出来,并且会形成程序中止。

            怎么防止空指针?

            下面说几个空指针的几个最常见的事例及解决之道。

            1、字符串比较,常量放前面

            if(status.equals(SUCCESS)){

            }

            这个时分 status 或许为 null 形成空指针反常,应该把常量放前面,就能防止空指针反常。

            if(SUCCESS.equals(status)){

            }

            这个应该在各种开发标准里边都会说到,也是最根底的。

            2、初始化默许值

            在目标初始化的时分给它一个默许值或许默许结构完成,如:

            User user = new User();
            String name = StringUtils.EMPTY;

            3、回来空调集

            在回来一个调集的话,1号娱乐app网址-求求你别再写 bug 了,老猿通知你防止空指针的 5 个事例!默许会是 null,一致标准回来一个1号娱乐app网址-求求你别再写 bug 了,老猿通知你防止空指针的 5 个事例!空调集。

            举个 List 比如,如:

            public List getUserList(){
            List list = userMapper.gerUserList();
            return list == null ? new ArrayList() : list;
            }

            这样接收方就不必忧虑空指针反常了,也不会影响事务。

            4、断语

            断语是用来查看程序的安全性的,在运用之前进行查看条件,假如不契合条件就报反常,契合就持续。

            Java 中自带的断语关键字:assert,如:

            assert name == null : "称号不能为空";

            输出:

            Exception in thread "main" java.lang.AssertionError: 称号不正确

            不过默许是不发动断语查看的,却组词需求要带上 JVM 参数:-enableassertions 才干收效。

            Java 中这个用的很少,主张运用 Spring 中的,更强壮,更便利好用。

            Spring中的用法:

            Assert.notNull(name,"称号不能为空");

            5、Optional

            Optional 是 JDK 8 新增的新特性,再也不必 != null 来判别了,这个在一个目标里边的多个子目标接连判别的时分十分有用。

            这儿1号娱乐app网址-求求你别再写 bug 了,老猿通知你防止空指针的 5 个事例!大约介绍了 5 种,其实还有更多,怎么防止空指针,一是要注意代码编写标准,二是要进步代码素质。

            请关注微信公众号
            微信二维码
            不容错过
            Powered By Z-BlogPHP