“嗨,阿米戈!”
“今天我要說的是自動裝箱,自動裝箱就是自動把東西放進盒子裡。”
“你會記得 Java 有繼承 Object 類的類型,以及原始類型。但事實證明,像集合和泛型這樣方便的東西只適用於繼承 Object 的類型。”
“然後決定製作每個原始類型的非原始對應物。”
原始類型 | 非原始對應物 |
---|---|
字節 | 字節 |
短的 | 短的 |
整數 | 整數 |
長的 | 長的 |
漂浮 | 漂浮 |
雙倍的 | 雙倍的 |
布爾值 | 布爾值 |
字符 | 特點 |
空白 | 空白 |
“但是一直在這些類型之間轉換非常不方便:”
int x = 3;
Integer y = new Integer(x + 1);
int z = y.intValue();
“尤其是在直接使用集合時:”
例子
int[] numbers = new int[10];
ArrayList list = new ArrayList();
for (int i = 0; i < numbers.length; i++)
{
list.add( new Integer(i));
}
“這就是為什麼 Java 的創造者發明了原始類型的 «自動裝箱» 以及對非原始類型的‘拆箱’。”
“這是它的工作原理:
你看到什麼了 | 到底發生了什麼 |
---|---|
|
|
|
|
|
|
|
|
“這一切都很簡單。您可以將 int 和 Integer 類型分配給彼此,編譯器會處理其他所有事情。”
“那很方便。”
“是的。但有些細微差別我稍後會談到。”
GO TO FULL VERSION