我有一个函数打印Map对象,
public static void printMap(Map<Integer, Integer> map) {
for (Map.Entry<Integer, Integer> entry : map.entrySet()) {
System.out.println( entry.getKey() + " " + entry.getValue() );
}
}
Run Code Online (Sandbox Code Playgroud)
现在,我希望我的功能也适用于Map<String, Integer>地图类型.怎么做?我一直想使用泛型,希望有一个良好的开端这个问题.
您可以编写泛型方法,如下面的代码:
public static <K, V> void printMap(Map<K, V> map) {
for (Map.Entry<K, V> entry : map.entrySet()) {
System.out.println( entry.getKey() + " " + entry.getValue() );
}
}
Run Code Online (Sandbox Code Playgroud)
建议阅读:
正如@JBNizet在评论中指出的那样,您也可以使用通配符 (?)而不是类型参数来编写方法,如下所示:
public static void printMap(Map<?, ?> map) {
for (Map.Entry<?, ?> entry : map.entrySet()) {
System.out.println( entry.getKey() + " " + entry.getValue() );
}
}
Run Code Online (Sandbox Code Playgroud)