在我们的开发过程中我们遇到最多的异常估计就是空指针异常,所以当我们使用某个字段时我们要先对其做非空判断,避免空指针异常。
在我们的开发过程中很多人都是直接使用 str == null 的方式来做空指针判断的,但是我们今天要说的是StringUtils这个类中的一个方法isBlank(),当str为空时会返回true。
StringUtils.isBlank(str)
但是我们为什么要使用这个方法多次一举而不是直接使用 == null 直接做非空判断呢?下面就让我们来了解了解isBlank()这个方法和 == null 的区别吧。让我们先来看一个例子
public class CheckNull { public static void main(String[] args) { String str = null; // String str = ""; // String str = " "; if (StringUtils.isBlank(str)){ int i = 0; } if (str == null){ int i = 0; } } }
在这个例子中,str有可能是null,""," ",三个情况,最后一个是只有一个空格。在开发过程中有可能str是null,""," ",这三种情况且这三种情况都是一个空状态,当我们使用isBlank()这个方法的时候对于这三个情况都是判定为空,返回true,而使用 == null 则只能判断str = null的这种情况,需要加上""," " 这两个情况的话则需要将判断条件修改为:
if (str == null || "".equals(str) || " ".equals(str)){ int i = 0; }
但是在开发过程中我们会很容易忽略str = "",str = " ",这两个情况,从而导致后续会出现一些问题。
综上所述,为了避免上面的这种情况,建议大家使用StringUtils.isBlank(str)的方式来对字符串做非空的判断。