如何正确判断Java中的空值?

发表时间: 2023-12-26 21:13

Java到底该如何判空,这一点很重要,小伙伴们应该经常会遇到如下截图。



java.lang.NullPointerException 这种异常对当前用户来说是灾难,当前服务对他来说不可用。那么该如何判空呢

一、 对象判空


另外,Guava 库还提供了一个更方便的方法,使用方式如下:


二、 字符串判空


这种是原始的方式,但需要写太多代码判断,会显得有些麻烦。或 使用 Apache Commons Lang3 提供的 判断字符串是否为空或者只包含空格字符。这种方式使用起来非常方便:



这里要注意的是isEmpty()和isBlank还是有区别的,isEmpty()是判断空字符串,isBlank则可以判断出来空格,可以根据自己需要选择,如果没有特殊需求,个人建议还是isBlank保险。

三、 List 判空

使用 if (list == null || list.isEmpty()) 判断 List 是否为 null 或者是否为空列表。或使用 Java 8 引入的 isEmpty() 方法判断 List 是否为 null 或者是否为空列表:但注意 isEmpty() 方法只会判断集合是否为空,而不会判断集合是否为 null。因此,使用 Collection#isEmpty() 方法之前,要先判断集合是否为 null。如果为 null,则该方法会抛出空指针异常。正确的使用方法如下:


四、Map 判空


五、数组判空


六、Set判空


在判断集合、数组、对象是否为空时,进行非空判断时最好先判断对象是否存在,否则在对象不存在的情况下操作对象可能会导致空指针异常的发生。

七、文件判空