我有一个自定义 Map to String 方法。它适用于任何类型的具有 String 键的 Map,不限于某些特定的映射值类型。例如,映射值可能来自javax.jms.Message.getObjectProperty(String name)
方法,或者只是纯字符串。
以下哪个是最“正确”的方法签名,为什么,或者都是平等的?
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
在条目类型中)。