【发布时间】:2015-12-19 11:27:56
【问题描述】:
我构建了一个接收泛型对象的 Java 类;
class only 字段设置为:
private Map map = new HashMap<T,Integer>();
我的问题是,在我编写的某些方法中,当我为 HashMap 对象调用 put 方法时,编译器警告我并显示以下消息:
类型安全:方法
put(Object, Object)属于原始类型HashMap。应该参数化对泛型类型Map<K,V>的引用
我更喜欢避免编译器警告,因为它可能以运行时错误结束。
如果您能向我解释这个消息以及我需要做些什么来消除它,我会很高兴。
我写的方法是:
public void addItem(T item) {
if (this.map.containsKey(item)) {
this.map.put(item, (int)this.map.get(item) + 1);
}
else {
this.map.put(item, 1);
}
}
在这里你可以看到编译器抱怨的地方:
【问题讨论】:
-
我不相信你真的得到了你所说的信息。我相信实际上你得到了“类型安全:方法 put(Object, Object) 属于原始类型 Map”。
标签: java generics compiler-warnings