java如何编写一个具有不同键类型的方法来接受映射?

时间:2018-11-13 13:45:49

标签: java generics

我有具有不同键类型和相同值类型的映射,我想要一种通用方法来处理所有不同的键映射,例如

Map<Integer,String> intKeyMap;
Map<String,String> strKeyMap;

public void processMap(Map m) {
//iterate the map and do something 
}

我对泛型的知识有限,如何使“ processMap”方法接受不同的键映射并进行处理?

-----------阅读回复后,请按以下详细说明进行编辑---------

?通配符是实际上解决了我最初的问题的答案:)。将关闭此。谢谢您的帮助。

2 个答案:

答案 0 :(得分:3)

回答您的问题:

public void processMap(Map<?, ?> m)
{

}

允许您这样做:

  

在通用代码中,问号(?)(称为通配符)   代表未知类型

https://docs.oracle.com/javase/tutorial/java/generics/wildcards.html

答案 1 :(得分:2)

您甚至可以尝试:

public <T> void processMap(Map<T, String> m)
{
  Iterator<T> it;
  it = m.keySet().iterator();
  ...
}