一、基础判空方法
经常有这样的需求:在开发中需要对数组进行判空来避免出现空指针异常。最基础的判空方法就是判断数组是否为null或数组长度是否为0。
public static boolean isEmpty(Object[] array) {
return array == null || array.length == 0;
}
调用方法如下:
Object[] array = null;
boolean isEmpty = isEmpty(array);
System.out.println(isEmpty); //输出 true
或者:
Object[] array = new Object[0];
boolean isEmpty = isEmpty(array);
System.out.println(isEmpty); //输出 true
二、使用Guava库来判空
Guava库中提供了一种更简洁的方法来判断数组是否为空。使用一个简单的方法串联起来即可:
public static boolean isEmpty(Object[] array) {
return array == null || array.length == 0;
}
boolean isEmpty = Objects.equal(array, null) || array.length == 0;
调用方法同上,输出结果也是 true。
三、判空封装类
为了不重复写判断数组是否为空的方法,我们可以将其封装成一个工具类,方便项目中复用。
public class ArrayUtils {
public static boolean isEmpty(Object[] array) {
return array == null || array.length == 0;
}
}
调用方法如下:
Object[] array = null;
boolean isEmpty = ArrayUtils.isEmpty(array);
System.out.println(isEmpty); //输出 true
或者:
Object[] array = new Object[0];
boolean isEmpty = ArrayUtils.isEmpty(array);
System.out.println(isEmpty); //输出 true
四、Java 8的判空方式
在Java 8中,可以使用Stream API来判断数组是否为空:
Optional.ofNullable(array)
.map(Arrays::stream)
.orElseGet(Stream::empty)
.findFirst()
.isPresent();
调用方法同上。
五、总结
在开发中,判断数组是否为空是一个很常见的需求。我们可以根据具体情况灵活运用基础方法、Guava库、封装类和Java 8的方法来进行判空。