Java中是使用增强for的null问题

在使用List和Map等集合时,我们经常会使用增强for来进行遍历。但是这里面会存在一些问题。比如当你进行数据库查询是,得到的返回结果是List集合时,如果没有查询到符合要求的数据时List集合时null,并不是有对象而size为0的集合,这个时候就要对返回的结果进行空指针判断,不为null的时候才能遍历,否则回报空指针异常。

List<String> list = null;
for (String str : list) {//会报空指针异常
      System.out.println(str);
}
 
List<String> list = new ArrayList();//正常运行
for (String str : list) {
      System.out.println(str);
}
  1. 增强型for循环不支持遍历时修改
  2. list为null时会报空指针异常;list为长度为0的空集合却不会。所以每次使用for循环的时候要注意空值的判断
  3. 使用增强型for循环时,对遍历的集合需要做null判断,不然可能引发空指针异常。
点赞