gpt4 book ai didi

Java:应用于 Map 泛型类型的多态性

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:45:58 26 4
gpt4 key购买 nike

我想要一个函数(例如)在两种情况下输出 Map 的所有值:

Map<String, String> map1 = new HashMap<String, String>();
Map<String, Integer> map2 = new HashMap<String, Integer>();
output(map1, "1234");
output(map2, "4321");

下面的似乎不起作用:

public void output(Map<String, Object> map, String key) {
System.out.println(map.get(key).toString());
}

StringInteger 不都是 Object 类型吗?

最佳答案

Map<String, String>不扩展 Map<String, Object> , 就像 List<String>不扩展 List<Object> .您可以将值类型设置为 ?通配符:

public void output(Map<String, ?> map, String key) {  // map where the value is of any type
// we can call toString because value is definitely an Object
System.out.println(map.get(key).toString());
}

关于Java:应用于 Map 泛型类型的多态性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31587563/

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