Java 提示:java.util.ConcurrentModificationException:null
无情
阅读:794
2021-03-31 13:19:37
评论:0
错误代码:
List<Permission> permissions = new ArrayList<Permission>();
//显示第1页每页显示3条
User user = userRepository.findByUserId(uid);
user.getRoles().stream().forEach(item->{
Role role = roleRepository.findByRoleId(item.getRoleId());
if(!CollectionUtils.isEmpty(role.getPermissions())){
for(Permission permission : role.getPermissions()){
if(permission.getPermisionParentId() == null){
permissions.add(permission);
}
}
}
});
// 错误异常代码
for(Permission permission : permissions){
if(permission.getParent() != null){
permissions.remove(permission);
}
}
// 修改后正常执行代码
Iterator<Permission> iterator = permissions.iterator();
while(iterator.hasNext()){
Permission permission = iterator.next();
if(permission.getPermisionParentId() != null){
iterator.remove();
}
}
错误造成原因:在遍历list的过程中,如果修改了元素,会导致list中索引与对应的值不同,因此抛出此异常
声明
1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。