2011-03-24 76 views
7

可能重複:
Storing primitive values in a Java collection?爲什麼原始數據類型在java.util.ArrayList中不允許?

ArrayList中只接受引用類型作爲其元素,而不是原始數據類型。 當試圖這樣做時,它會產生編譯時錯誤。

這背後是什麼概念?這似乎是一個限制,不是嗎?

+0

看到[這裏](http://stackoverflow.com/questions/2504959/storing-primitive-values-in-a-java-collection) – 2011-03-24 04:55:11

+0

...這本身就是一個特例[爲什麼你可以' t泛型一般使用原始類型](http://stackoverflow.com/questions/2721546/why-dont-generics-support-primitive-types)。雖然在泛仿製品時代,但您仍然無法使用基本類型與集合,因爲基元沒有共同的基本類型。 – 2011-03-24 04:57:12

回答

7

收集的對象的所有java類存儲集合類的內存位置。原始值不符合的相同定義。
爲了規避這個問題,JDK5及以後版本有自動裝箱功能 - 其中基元被轉換爲適當的對象,並在它們被添加或從集合中讀取時返回。

7

因爲Java只能使用泛型(在<和>之間)的類(而不是原始類型)和數組(也是基元的數組)。

List list;這也是之所以有基本類型的包裝類:

INT - >整數

布爾 - >布爾

雙 - >雙

字節 - >字節等。 ..

相關問題