看板 java 關於我們 聯絡資訊
※ 引述《dreamnook (亞龍)》之銘言: : ※ 引述《noapaov (單身漢)》之銘言: : : 但我在使用泛型的時候, 範例如下 : : ArrayList obj = new ArrayList<Integer>(); : : 其實等同 ArrayList<Object> obj = new ArrayList<Integer>(); : : 表示我可以加入任何的物件到obj裡面, 這時執行obj.add("test"); : : 編譯器沒有報錯我的理解是因為我宣告的是ArrayList<Object> obj, : 使用Eclipse : http://i.imgur.com/NrOe0bP.png
: 當用ArrayList<Object>來宣告時,Compiler Error : http://i.imgur.com/JYkk73H.png
: 在我看來ArrayList obj不等同ArrayList<Object> obj...囧> 確實是不一樣的,因為 Java 不支援共變性,可以看我回的上一篇… 你要寫這樣才會過編譯器 … ArrayList<? extends Object> lt = new ArrayList<Integer>(); 其實寫 … ArrayList lt = new ArrayList<Integer>(); 應是只等於寫 … ArrayList lt = new ArrayList(); 也就是不會用到泛型資訊 … -- 良葛格學習筆記 http://openhome.cc -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 49.215.51.149 ※ 文章網址: https://www.ptt.cc/bbs/java/M.1432809187.A.858.html
dreamnook: 那看來我的理解沒錯XD 05/29 10:30
AI3767: 推薦一篇官方不錯的泛型觀念文章 http://www.oracle.com/ 05/31 11:59
AI3767: technetwork/java/javase/generics-tutorial-159168.pdf 05/31 11:59