出了点小问题,记录一下。
@Override public void postHandle(WebRequest request, ModelMap model) throws Exception { if(model.get("content")==null){ Map<String,Object> content=new HashMap<String,Object>(); for(String key:model.keySet()){ if(!"status".equals(key)&&!"describe".equals(key)){ content.put(key, model.get(key)); model.remove(key); } } model.put("content", content); } } }
该方法打算实现将出了modelMap里面原来存储的对象取出来放到一个Map里面,然后存储该Map,但是运行报错ConcurrentModificationException,并发修改异常
原因是 在跌代一个集合的适合无法进行修改,解决方案可以先采用临时集合存储要修改的对象,然后再次修改。
if(model.get("content")==null){ JSONObject content=new JSONObject(); List<String> list=new ArrayList<String>(); for(String s:model.keySet()){ if(!"status".equals(s)&&!"describe".equals(s)){ list.add(s); content.put(s,model.get(s)); } } for(String s:list){ model.remove(s); } model.put("content", content); }