放入地图时出现非法状态异常

| 我不明白为什么我得到臭名昭著的“ IllegalStateException \”和以下代码:
private void mergeQueryStrings(String url, Map parameterMap) {
    String queryString = getQueryString(url);
    if(queryString!=null){
        String [] params = queryString.split(\"&\");
        for(String param:params){
            parameterMap.put(param.split(\"=\")[0], param.split(\"=\")[1]);
        }
    }
}
谁能启发我?     
已邀请:
您提供了无法修改的地图。例如,ѭ1是不可变的。如果您无法控制提供的地图,则需要创建一个新地图,在其中放置新项目,然后将其退回并使用它。
private Map mergeQueryStrings(String url, Map parameterMap) {
    Map newParameterMap = new HashMap(parameterMap);
    String queryString = getQueryString(url);
    if(queryString!=null){
        String [] params = queryString.split(\"&\");
        for(String param:params){
            newParameterMap.put(param.split(\"=\")[0], param.split(\"=\")[1]);
        }
    }
    return newParameterMap;
}
如果您实际上是为此使用servlet请求参数映射,那么您希望在
Filter
中用
HttpServletRequestWrapper
替换原始的。但这是一个完全不同的故事:) 与具体问题无关,您应该先对查询字符串部分进行url解码,然后再将其放入新地图。     

要回复问题请先登录注册