问题描述:
当集合对象为null时,用foreach遍历,是否会抛异常?
测试:
当list为空
@Test
public void test(){
// list为空
List<String> list = new ArrayList<>();
System.out.println("list.size="+list.size());
for (String ss:list){
System.out.println("1111="+ss);
}
}
list的大小是0,foreach不会抛异常,但是也不会进入foreach方法,所以语句未打印。
当list为null
@Test
public void test(){
// list为null
List<String> list2=null;
// System.out.println("list2.size="+list2.size());
for (String ss:list2){
System.out.println("2222="+ss);
}
}
list调用size()方法会抛空指针异常,语句未打印
foreach也会抛空指针异常,不会进入foreach方法,语句未打印
结论:
当对象为null时,foreach会抛空指针异常,不会进入foreach方法;
当对象为空时,foreach不会抛异常,也不会进入foreach方法。
集合对象为空,大小为0;
集合对象为null,无大小,调用size等方法会抛空指针异常。