我写了一段代码
@Override
public boolean delete(Long[] ids) {
for(int i = 0;i<=ids.length;i++){
Long id = ids[i];
GroupPO groupPO = this.baseMapper.selectById(id);
if(groupPO.getGroupCode() != null){
groupServiceImpl.deleteAll(groupPO.getGroupCode());
}
}
return removeByIds(Arrays.asList(ids));
}
在运行过程中报错数组越界,排查之后发现是因为
for(int i = 0;i<=ids.length;i++)
这里,for循环的时候,当 i 等于 ids.length 时又进入了循环
举个例子,假如我传入了[1,2,3,4]
ids[0] = 1
ids[1] = 2
ids[2] = 3
ids[3] = 4
也就是ids.length=4时,ids[4] 已经没有值了,所以发生了数组越界