對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());