美文网首页
java 避免空指针异常

java 避免空指针异常

作者: 南土酱 | 来源:发表于2019-04-16 15:22 被阅读0次

    NullPointerException :空指针异常

    Throwable <-- Exception <-- RuntimeException <-- NullPointerException

    从上述的类结构图来看,空指针它是属于运行时异常 RuntimeException 的子类,它不是捕获型的,只有在程序运行时才可能报出来,而且会造成程序中断。


    如何避免空指针?

    Code :
        1.对于字符串比较: if(SUCCESS.equals(status)){} 即使status为空也不会空指针异常 
      //常量放在最前
        * Objects.equals(a, b) : 此方法即便 a,b 都为空也不会报错
    
        1.1当valueOf()和toString()返回相同的结果时,宁愿使用前者。
        beacause 传递一个null给valueOf()将会返回“null”
    
        2.在对象初始化的时候赋予默认构造实现或默认值: 
           User user = new User() ; String s = StringUtils.EMPTY; //指定为空值
    
        3.在返回一个集合的话,默认会是 null,统一规范返回一个空集合。
           :{List list = userMapper.gerUserList();
        return list == null ? new ArrayList() : list;}
    
        4.断言: 用来检查程序的安全性.
          使用之前进行检查条件,如果不符合条件就报异常,符合就继续。
          例如: assert name == null : "名称不能为空";
          将会输出: Exception in thread "main" java.lang.AssertionError: 名称不正确
          *不过默认是不启动断言检查的,需要要带上 JVM 参数:-enableassertions 才能生效。
          *Java 中这个用的很少,建议使用 Spring 中的,更强大,更方便好用。
          *(Spring中的用法:Assert.notNull(name,"名称不能为空");)
    
        5.Optional 是 JDK 8 新增的新特性,再也不用 != null 来判断了
         这个在一个对象里面的多个子对象连续判断的时候非常有用。
    

    相关文章

      网友评论

          本文标题:java 避免空指针异常

          本文链接:https://www.haomeiwen.com/subject/yfebwqtx.html