作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我想要一个函数(例如)在两种情况下输出 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());
}
String
和 Integer
不都是 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/
我是一名优秀的程序员,十分优秀!