对request.getParameterMap()获取的参数进行修改时,发现报异常显示为java.lang.IllegalStateException: No modifications are allowed to a locked ParameterMap经查询,发现java的原生对象是不允许修改的,如下代码:
Map<String,String[]> m = getParaMap();
是不能对m进行直接修改,因为用等号赋值只是地址引用,并没有改变内存空间,因此无法对之前产生的那个被锁定的对象进行操作。
解决方法:用new重新创建一个新的对象,重新申请一个内存空间,然后把锁定的对象重新复制到新的空间中,将不可变变为可变。代码如下:
Map<String,String[]> m = new HashMap<String,String[]>(getParaMap());