美文网首页
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