ArrayList直接使用for循环遍历,调用本身的remove(Object o)方法,报错:java.util.ConcurrentModificationException
for(Permission permission : permissions){
String url = permission.getUrl();
List children = permission.getChildren();
if( (url == null || "".equals(url)) && (children == null || children.isEmpty())){
permissions.remove(permission);
}
}
改为Iterator遍历,调用Iterator删除方法remove()
Iterator<Permission> iterator = permissions.iterator();
while(iterator.hasNext()){
Permission permission = iterator.next();
String url = permission.getUrl();
List children = permission.getChildren();
if( (url == null || "".equals(url)) && (children == null || children.isEmpty())){
iterator.remove();
}
}
具体原理待进一步分析,先记录下这个报错
参考https://blog.csdn.net/qq_35056292/article/details/79751233