<small id='emBSQt'></small> <noframes id='dhTigtSoGu'>

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

      <legend id='u4oL1R8'><style id='4gXa'><dir id='Dea1mJ'><q id='4ODNIdyYEh'></q></dir></style></legend>
      <i id='jNfLOH'><tr id='OaKg'><dt id='RphlxuI'><q id='g4LqNj0cMw'><span id='MgYf'><b id='HXMa'><form id='DZWfaj'><ins id='bYc7L1UyhI'></ins><ul id='uCUSwO2Ec0'></ul><sub id='baCTic1FH'></sub></form><legend id='oa3Dcn'></legend><bdo id='cHklB'><pre id='K35kSrN'><center id='H3AjYsGR'></center></pre></bdo></b><th id='t1mVwSjp'></th></span></q></dt></tr></i><div id='xOpa'><tfoot id='JZ4E1U0gnv'></tfoot><dl id='XNxwP5s'><fieldset id='bAqzfE9XUu'></fieldset></dl></div>

          <bdo id='SRe4'></bdo><ul id='LMhEVYDZ'></ul>

          1. <li id='qpVLlR0F9v'></li>
            登陆

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

            admin 2019-05-14 235人围观 ,发现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