for 与 foreach产生的Cannot find local variable异常
for (int i = 0; i < termCourseHisDTOS.size(); i++) {
int thisYear = LocalDate.now().getYear();
if (termCourseHisDTOS.get(i).getCourseYear()== thisYear &&termCourseHisDTOS.get(i).getEndTime()== null) {
termCourseHisDTOS.remove(i);
}
}
//遍历修改数组只能用for循环!
for (TermCourseHisDTO termCourseHisDTO:termCourseHisDTOS) {
int thisYear = LocalDate.now().getYear();
if (termCourseHisDTO.getCourseYear()== thisYear && termCourseHisDTO.getEndTime()== null){
termCourseHisDTOS.remove(termCourseHisDTO);
}
}
//会报错 java.util.ConcurrentModificationException: null
//foreach循环不能修改数组的长度,-也就是说不能在遍历的时候数组进行添加或删除!!!!!
Debug:在debug模式可以清晰的看到foreach在进行数字遍历的时候,会启动监听器,默认监视数组中第一个对象的某个特定的属性值,用来当作验证—(这里就取的是dayOfWeek,是系统的默认随机操作)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YELC9znW-1642147416445)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220114155057664.png)]
直到改变数组后foreach,认为原来的那个数组对象以及不在了,就抛出了==>Cannot find local variable ‘termCourseHisDTOS’’异常。
ble ‘termCourseHisDTOS’’异常。
版权声明:本文为shouji6175原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。