[問題] 關於泛型型態參數的問題
請問
譬如說有個敘述是這樣寫的
List<Integer> x=new ArrayList<Integer>();
請問前面的ArrayList<Integer>跟後面的ArrayList<Integer>()
請問在型態參數上兩者分別代表什麼意義呢?
會這樣問是因為書上有提到
List<Object> y=x;
像這樣會有編譯上的錯誤
我剛剛想到的解釋不知道對不對
在new ArrayList<Integer>()這段的Integer決定ArrayList物件的實際型態參數
而在前面的List<Integer>部份
則是決定我在傳入參數給予這個ArrayList實體物件可以傳入的型態
所以如果執行
y.add(new Object());
這樣是可以的
因為傳入的物件滿足Object或Object的子類別這條件
但如果使用x.get(0);
將會因為回傳的實際型態是Integer而非Object因而發生錯誤
上面的解釋感覺漏洞百出= =
懇請諸位高手補完~
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 124.8.146.227
→
10/09 23:31, , 1F
10/09 23:31, 1F
→
10/09 23:37, , 2F
10/09 23:37, 2F
→
10/09 23:43, , 3F
10/09 23:43, 3F
→
10/09 23:57, , 4F
10/09 23:57, 4F
→
10/10 15:23, , 5F
10/10 15:23, 5F
→
10/10 15:25, , 6F
10/10 15:25, 6F
推
10/10 19:28, , 7F
10/10 19:28, 7F