[英]Ljava.lang.String in Map
我很困惑......
我有這個方法,可以從視圖中的URL中獲取參數:
public static Map<String, String[]> getParameters() {
final Set<Map.Entry<String,String[]>> entries = request().queryString().entrySet();
Map <String, String[]> parameters = new HashMap <String, String[]>();
for (Map.Entry<String,String[]> entry : entries) {
final String key = entry.getKey();
String[] value = entry.getValue();
parameters.put(key, value);
}
System.out.println(parameters);
return parameters;
}
當我打印參數時,這是我通常得到的:
{Y軸= [Ljava.lang.String; @ 4ddf465,
我試圖改變價值
String value = Arrays.toString(entry.getValue());
然后它顯示正常: {yAxis=[Choose, Choose]
但我不能通過值,因為它們都是字符串而不是列表。 我希望將String []中的值與鍵相關聯,這樣我就可以通過它進行迭代。 當它只是一個字符串時我無法迭代。 我確信這是一個簡單的問題,但我似乎無法弄明白。
請幫我...
不幸的是,所有數組的toString()都默認為Object提供的方法,它打印了類的內部描述和“identity”hashCode。
如果您的目錄結構中有String[]
,則必須自己執行toString,默認情況下不會執行您想要/期望的操作。 解決此問題的一種方法是使用List<String>
例如ArrayList<String>
,它將按預期打印。
它是一個字符串數組,而不僅僅是一個字符串。 您可以遍歷數組並獲取映射到鍵的(多個)字符串值。
如評論中所述,
for (String value: entry.getValue())
{
System.out.println(value);
}
如果要更改toString()
以反映字符串表示的自己的實現,則必須編寫包含數據的自己的對象並覆蓋toString()
。
問題來自字符串數組上的toString方法的默認實現。 那是[Ljav.lang.String; @ 44df465來自的地方。
創建自己的類來保存值並實現toString方法以按您希望的方式輸出值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.