gpt4 book ai didi

java - 定义 Map 方法参数的正确方法是什么

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:50:49 28 4
gpt4 key购买 nike

我有一个自定义的 Map to String 方法。它旨在与具有 String 键的任何类型的 Map 一起使用,而不限于某些特定的 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 变量的“正确”类型是否重要( map 中 ? 的不兼容组合除外,Object在条目类型中)。

最佳答案

String map2String(Map<String, ?> map){...}是正确的(? extends Object 是多余的)

第一个不行,因为你不能打电话

Map<String,Integer> myMap = {...}
map2String(myMap); // Map<String,Integer> is not Map<String,Object>

入口变量的正确类型是Entry<String, ?>如您所料。

关于java - 定义 Map<String, ?> 方法参数的正确方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13377953/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com