在Java开发中,我们经常需要处理集合(如ArrayList)的情况。为了确保程序的稳定性和正确性,我们必须妥善处理空集合和空指针。
public class Main { public static void main(String[] args) { ArrayList list1 = new ArrayList<>(); ArrayList list2 = null; System.out.println("list1:" + list1.size()); if (CollectionUtils.isEmpty(list1)) { System.out.println("list1为空"); } if (list2 == null) { System.out.println("list2为空"); } // 这一行会抛出NPE异常 System.out.println("list2:" + list2.size()); } } 初始化集合:
ArrayList list1 = new ArrayList<>(); ArrayList list2 = null; list1 被初始化为空的ArrayList,即使没有元素,它也不是null。list2 被初始化为null,它没有指向任何对象。打印list1的大小:
System.out.println("list1:" + list1.size()); list1是一个空的ArrayList,因此list1.size()将返回0。检查list1是否为空:
if (CollectionUtils.isEmpty(list1)) { System.out.println("list1为空"); } CollectionUtils.isEmpty方法来检查list1是否为空。它不仅检查集合是否为空,还检查集合是否为null。list1是一个空的ArrayList,CollectionUtils.isEmpty(list1)返回true,所以会打印“list1为空”。检查list2是否为null:
if (list2 == null) { System.out.println("list2为空"); } list2是否为null,因为list2没有被初始化为一个集合对象,所以list2 == null为true,会打印“list2为空”。尝试打印list2的大小:
System.out.println("list2:" + list2.size()); NullPointerException异常,因为list2是null,不能调用size()方法。使用CollectionUtils.isEmpty方法:
nullif (CollectionUtils.isEmpty(list)) { /* 集合为空或为null */ }在操作集合前检查是否为null:
null。这可以防止NullPointerException。if (list != null && !list.isEmpty()) { /* 对集合进行操作 */ }初始化集合:
null,可以将其初始化为空集合,避免多次null检查。ArrayList list = new ArrayList<>(); 通过上述方法,可以有效地避免在处理集合时遇到的常见问题,确保程序的稳定性和健壮性。在开发中,良好的编码习惯和对可能出现的异常情况的处理至关重要。
处理其他集合类型(例如HashMap、HashSet等)时,原则上与处理ArrayList类似的哦。
❤觉得有用的可以留个关注~❤