在使用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);
}
- 增強型for循環不支持遍歷時修改
- list為null時會報空指針異常;list為長度為0的空集合卻不會。所以每次使用for循環的時候要注意空值的判斷。
- 使用增強型for循環時,對遍歷的集合需要做null判斷,不然可能引發空指針異常。