沒有通過特殊處理的話,你獲得的字符串是這樣的Ljava.lang.String;@1234 java
Ljava.lang.String;@1234 那麼這一串是什麼意思呢?數組
網上搜了下:函數
「([Ljava/lang/String;)V」 它是一種對函數返回值和參數的編碼。這種編碼叫作JNI字段描述符(JavaNative Interface FieldDescriptors)。一個數組int[],就須要表示爲這樣"[I"。若是多個數組double[][][]就須要表示爲這樣 "[[[D"。也就是說每個方括號開始,就表示一個數組維數。多個方框後面,就是數組 的類型。編碼
若是以一個L開頭的描述符,就是類描述符,它後緊跟着類的字符串,而後分號「;」結束。spa
好比"Ljava/lang/String;"就是表示類型String;.net
JNI方法描述符,主要就是在括號裏放置參數,在括號後面放置返回類型,以下:code
(參數描述符)返回類型對象
代碼以下:ip
Map resMap=transToMAP(request.getParameterMap());
private Map transToMAP(Map parameterMap){ // 返回值Map Map returnMap = new HashMap(); Iterator entries = parameterMap.entrySet().iterator(); Map.Entry entry; String name = ""; String value = ""; while (entries.hasNext()) { entry = (Map.Entry) entries.next(); name = (String) entry.getKey(); Object valueObj = entry.getValue(); if(null == valueObj){ value = ""; }else if(valueObj instanceof String[]){ String[] values = (String[])valueObj; for(int i=0;i<values.length;i++){ value = values[i] + ","; } value = value.substring(0, value.length()-1); }else{ value = valueObj.toString(); } returnMap.put(name, value); } return returnMap; }