因此,大家可以看到是冠軍我很困惑於:爲什麼地圖<String, int> list = new HashMap <String, int>不允許?
Map<String, int> list = new HashMap<String, int>
我在課堂上有點失去了對這個特定的主題,並希望如果有人能解釋爲什麼,以及如何實際工作。
因此,大家可以看到是冠軍我很困惑於:爲什麼地圖<String, int> list = new HashMap <String, int>不允許?
Map<String, int> list = new HashMap<String, int>
我在課堂上有點失去了對這個特定的主題,並希望如果有人能解釋爲什麼,以及如何實際工作。
類型int
不是一個類,它是一個原始類型。泛型類型參數必須分配類,而不是原始類型。您可以使用
Map<String, Integer> list = new HashMap<String, Integer>();
改爲。所有的Java原始類型都有類包裝,自Java 1.5起,自動裝箱允許表達式如map.put("dummy", 1);
,其中1
被自動裝箱爲Integer
。
順便提一下,撥打Map
list
可能會引起混淆。你可以通過調用map
來消除混淆。
謝謝,我現在得到了我現在困惑的地方 – 2013-05-01 16:46:39
+1隨着挑剔:我會說「參考類型」來覆蓋數組以及類。 – 2013-05-01 20:52:01
它應該是「參考類型」。它不僅可以是數組或類或接口類型,它也可以是參數化類型或類型參數。 – newacct 2013-05-02 03:19:59
在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
}
由於在 這裏到位<的K,V>中
<字符串,int>的int
是基本類型,我們can't make object of primitive type
。 看到// 1和// 2以上代碼
但是<字符串,整數>是可能的,因爲它們是包裝類型和對象可以使他們的
嗯,有道理 – 2013-05-01 16:46:17
如此滿意回答:) – 2013-05-01 16:49:50
什麼是確切的編譯器的信息? – 2013-05-01 16:20:52
你爲什麼要調用地圖'list'? :( – 2013-05-01 16:21:46
@DaveNewton過早混淆?;) – 2013-05-01 16:22:28