因为你可以看到标题我很困惑:
Map<String, int> list = new HashMap<String, int>
我在课堂上对这个特定主题有点失落,如果有人能解释为什么以及它如何实际起作用,我将不胜感激。
答案 0 :(得分:11)
类型int
不是类,它是基本类型。通用类型参数必须分配类,而不是基本类型。你可以使用
Map<String, Integer> list = new HashMap<String, Integer>();
代替。所有Java原始类型都有类包装器,从Java 1.5开始,自动装箱允许使用map.put("dummy", 1);
等表达式,其中1
被自动装箱为Integer
。
顺便提一下,拨打Map
list
会很困惑。您可以通过调用map
来消除混淆。
答案 1 :(得分:1)
IN java发生以下事情
public interface Map<K, V> {
public K getKey();
public V getValue();
}
public class HashMap<K, V> implements Map<K, V> {
private K key; //1
private V value; //2
public K getKey() { return key; }
public V getValue() { return value; }
//other getter setter methods
}
如同 这里代替&lt; K,V&gt;在
&LT;字符串,整数&GT; int
是原始类型而我们can't make object of primitive type
。
请参阅上面的// 1和// 2代码
但是&lt; String,Integer&gt;是可能的,因为它们是包装类型,对象可以由它们构成