private void replace(MapItem targetItem,String name, Map<String, String> dest) { Map<String, String> orMap = targetItem.getMap(); Map<String, String> cloneOrMap = orMap; if(orMap instanceof ConfigMap){ cloneOrMap = ((ConfigMap)orMap).clone();//使用clone,不触发事件put }else{ cloneOrMap = new HashMap<String, String>(orMap); } Map<String, String> temp = new HashMap<String, String>(dest); compareAndUpdate(cloneOrMap,temp);//将map合并到cloneOrMap targetItem.setMap(cloneOrMap); putMapItem(name,targetItem); }