【发布时间】:2014-03-19 05:08:35
【问题描述】:
我不知道为什么我可以将任何类型的值传递给 HashMap.containsKey() 方法。我假设这个方法是HashMap Class 的实例方法(如果我错了,请纠正我),它应该受到泛型类型的限制。如果JAVA不想约束它,为什么HashMap.put()方法需要匹配它参数化的类型...
HashMap<String, String> map = new HashMap<String, String>();
// invalid
// map1.put(1, "a");
我不能将int 值键放入我的HashMap map 具有String 的键类型。 containsKey() 和 put() 方法有什么不同?
public static void main(String[] args) {
HashMap<String, String> map1 = new HashMap<String, String>();
map1.put("1", "a");
map1.put("2", "b");
map1.put("3", "c");
if (map1.containsKey(1)) {
System.out.println("contain");
}
else {
System.out.println("not contain");
}
}
在上面的代码中,输出了not contain,编译器没有反对。如果是这样,它将防止这种错误发生!我对吗?如果不是,请引导我了解真相。
感谢您阅读我的问题!
【问题讨论】: