自从前几个星期升级了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升级之后的编辑器是鸡儿不习惯....先记录四种方式吧..