【发布时间】:2014-12-27 02:36:44
【问题描述】:
是否有可能有一个需要 HashMap 的方法并能够提供任何以字符串为键的 HashMap?要放置某种通用数据类型而不是“值”?
public void example(HashMap<String, Value> hashMap) {
//Stuff
}
example(new HashMap<String, Integer>);
HashMap<String, String> exampleMap = new HashMap<>();
example(exampleMap);
或者,是否可以检查映射的键/值类型,而不是遍历所有键/值并检查 instanceof(不通过 return 停止它)?
public Boolean example(HashMap<String, Value> hashMap) {
for (Value value : hashMap.values())) {
if (value instanceof String) {
return true; //<- Unwanted
}
}
}
编辑: 让我进一步解释一下我的问题。我有一个方法:
public static Object getEIC(HashMap<String, Object> map, String key) {
for (String keys : map.keySet()) {
if (keys.equalsIgnoreCase(key)) {
return map.get(keys);
}
}
return null;
}
EIC 代表 equalsIgnoreCase。所以我也需要一些通用的返回类型。感谢到目前为止的答案,并感谢正手的答案!
【问题讨论】:
-
Java 中的“通用”数据类型是
Object。 -
嗯,你可以有
public <T> void example(HashMap<String, T> hashMap);但是我看不到您需要HashMap而不是常规的Map -
您是否只是在尝试实现一个 Map
您希望在其中使用不区分大小写的键?如果是这样,请查看stackoverflow.com/questions/8236945/…