我有一個自定義的地圖到字符串方法。它旨在用於任何種類的具有String鍵的Map,不限於某些特定的地圖值類型。例如,映射值可能來自javax.jms.Message.getObjectProperty(String name)
方法,或者只是普通的字符串。什麼是定義地圖的正確方法<String, ?>方法參數
以下哪項是最適合使用的方法簽名,以及爲什麼或者都是平等的?
String map2String(Map<String, Object> map){...}
或
String map2String(Map<String, ?> map){...}
或
String map2String(Map<String, ? extends Object> map){...}
或(添加編輯)
<E> String map2String(Map<String, ? extends E> map){...}
或其他什麼東西?
而且,該方法包含for-each循環有點像這樣:
for(Entry<String, ?> entry : map.entrySet()) {
String key = entry.getKey();
String value = entry.getValue().toString();
}
哪個是「正確」的類型爲entry
變量,它的問題(除的?
不相容組合在地圖,Object
在入口類型中)。
...看起來像正確的答案,具有贊成票和沒有不同意見。在接受之前等一會兒。 – hyde