我想從請求對象中獲取完整的參數映射並遍歷它。Request.getParameterMap值不能轉換爲字符串
這裏是示例代碼
Map map = request.getParameterMap();
for(Object key : map.keySet()){
String keyStr = (String)key;
Object value = map.get(keyStr);
System.out.println("Key " + (String)key + " : " + value);
}
輸出
Key businessunit : [Ljava.lang.String;@388f8321
Key site : [Ljava.lang.String;@55ea0889
Key startDate : [Ljava.lang.String;@77d6866f
Key submit : [Ljava.lang.String;@25141ee0
Key traffictype : [Ljava.lang.String;@4bf71724
其明顯從輸出該值對象是字符串的一個實例
now when i change my code to something like this
Map map = request.getParameterMap();
for(Object key : map.keySet()){
String keyStr = (String)key;
Object value = map.get(keyStr);
if(value instanceof String)
System.out.println("Key " + (String)key + " : " + (String)value);
}
它不執行任何打印但作爲根據之前的輸出,它應該已經打印出了這些值,如果我刪除了instanceOf,請檢查它是否給出ClassCastException異常。這是預期的行爲還是我在這裏做錯了什麼?
三種可能性:以該數組轉換爲可打印字符串
Arrays.toString()
方法1.你重新聲明類'String'地方(建議使用'java.lang.String',而不是'String'找到出來)? 2.運行兩段代碼時,你使用的是完全相同的值嗎? 3.嘗試使用'String.valueOf(value)'或'value.toString()'看看會發生什麼。希望能幫助到你。 –啊,忘了上面的,這是一個數組。騙了我。 –