※ 引述《tan45is1 (越高越想征服...)》之銘言:
: 我將int存入ArrayList中,
: 用get()將他取出,但不知道要如何轉型 @@a
: 問這個問題不知道會不會被噓....
: 各位大大多多包含
首先,Collection 中是無法存放 primitive 的,只能夠存放 Object
但是在 5.0 裡頭,這樣的寫法並不會產生任何錯誤,
這是因為 5.0 的 auto-boxing 把 int 包裝成了 Integer
---
但是因為沒有使用 Generic 的 Collection,
是以 Object type reference 你存入的東西
所以取出來的物件自然也是 Object
要如何把這個物件轉回 int
這時候就會用到 auto-unboxing
int n = (Integer) list.get(0);
( 先將 Object 轉成 Integer,再 unboxing 成 int )
---
雖然這麼做是沒問題的,
但是你應該善用 5.0 的另一個特色,也就是前面提過的 Generic
在宣告 ArrayList 的時候採用這樣的方式:
ArrayList<Integer> list = new ArrayList<Integer>();
接下來你就可以如同下方這樣,很直覺的操作 ArrayList 了
list.add(123);
int a = list.get(0);
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.126.173.31
[1;37m推 [33mPsMonkey[m[33m:安董出現了... [跪拜迎接] [m 08/16 01:59