搬运工们避免写空指针BUG记录
- 738 次检阅

自从前几个星期升级了wp,升级之后的编辑器一点儿也不习惯,导致又不想写记录了哎...这不是借口!!!


好了,入正题。

首先作为会复制粘贴的搬运工,对写空指针一点也不陌生吧。空指针是我们这些搬运工经常遇到的一个基本异常吧?不服?那我真的没办法。

什么?我自己也不知道空指针是什么?

emmm,我这么解释好了:

当我们定义了一个变量的值为 null 时,在 Java 里面表示一个不存在的空对象,没有实际内容,没有给它分配内存,所以,null 也就是对象成员变量中的默认值。

比如下面的一个例子会不会出现空指针呢?

Object obj = null;
String str = obj.toString();

结果是会出现'java.lang.NullPointerException'空指针异常,并且它是属于运行时异常RuntimeException的子类,它不是捕获型的异常,当我们运行程序时才可能报出来,而且会把程序运行给中断。

说了那么多,接下来需要如何避免,或者说我们这些复制粘贴的搬运工日常如何写出空指针的BUG?

1.最基础的字符串比较,常量或固定值放前面。

if(demo.equals("demoStr"))//出现空指针异常

if("demoStr".equals(demo))//这种情形,不出现空指针异常

2.使用JDK8的Optional

Optional类已经成为Java 8类库的一部分,Optional实际上是个容器:它可以保存类型T的值,或者仅仅保存null。Optional提供很多有用的方法,这样我们就不用显式进行空值检测,所以再也不用 != null 来判断了!!有空的话,下次自己码出来怎么用吧。

3.初始化默认值,先给一个无用的默认值。

4.当是返回一个集合的话,默认会是 null,统一规范返回一个空集合。

如:

public List getAllUserDataList(){
  List list = UserService.getAllUserDataList();
  return list == null ? new ArrayList() : list;
}

好了,不写了,wp升级之后的编辑器是鸡儿不习惯....先记录四种方式吧..

分享到:
, ,

这篇文章有2条评论

  1. NO:2907 / 發布於 - 2019-2-13 #1 回复

    自己开发一个博客啊,java走起啊。

  2. NO:2908 / 發布於 - 2019-2-13 #2 回复

    写半年C程序,空指针毛病保证扳过来。

发表评论