1

カスタムマップにリクエストパラメーターマップが必要です

Map<String, String> reqMap =(HashMap<String, String>)request.getParameterMap();

上記のステートメントは私に次の例外を与えます

java.lang.ClassCastException: java.util.Collections$UnmodifiableMap

カスタムマップですべてのリクエストパラメーターを取得する方法を教えてもらえますか? パラメータを 1 つずつ取得するために for ループを記述したくないため、パフォーマンスの問題が発生します。

4

4 に答える 4

4

Java 6 以降 のタイプのマップString, Stringrequest.getParameterMap()返すようにマップをキャストすることに注意してください。 http://docs.oracle.com/javaee/6/api/javax/servlet/ServletRequest.html#getParameterMap()String, String[]

于 2014-02-06T10:03:03.750 に答える
2
Map<String, String> reqMap = request.getParameterMap();
CustomMap<String, String> customMap = new CustomMap<String,String>();
customMap.putAll(reqMap);

もちろん、putAll()実装でマップ要素を反復処理する必要がある場合があります。そうでなければ、それは不可能です。

更新: あなたのコメントを見たところ、タイ語は簡単です。

Map<String, String> reqMap = request.getParameterMap();
Map<String, String> newMap= new HashMap<String,String>();
newMap.putAll(reqMap);

reqMapまたは、をコンストラクター引数として渡すこともできますnew HashMap<String, String>(reqMap);

于 2012-06-27T14:53:04.087 に答える
-1

変化する:

Map<String, String> reqMap =(HashMap<String, String>)request.getParameterMap();

に:

Map<String, String> reqMap =(Map<String, String>)request.getParameterMap();
于 2012-06-27T14:50:24.383 に答える