Re: [問題] generic裡面的type

看板java作者 (Alien)時間17年前 (2008/04/30 15:50), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串4/4 (看更多)
※ 引述《Fenikso (我是蜜蜂~)》之銘言: : ※ 引述《Fenikso (我是蜜蜂~)》之銘言: : : → Fenikso:而且我要的是"Class<T>"的instance 不是"T"的 04/30 11:47 : : → Fenikso:T的instance可能世界上根本就不存在XD 04/30 12:03 : : 推 qrtt1:太多可能性, 是否要宣告此題不值得浪費時間思考 !? 04/30 12:20 : : → Fenikso:哪來的太多可能性 那根本不是重點啊.. 04/30 12:37 : : 推 godfat:是要你問題講清楚啦,不然只有你知道什麼是重點 04/30 13:50 : : → adrianshum:如果你確定 collection 有東西就拿第一個 element 吧?. 04/30 14:53 : 不行 因為 第一個element.getClass()傳回的不一定是Class<T> : 可能是T的subclass : --- : 好吧 那我就再講清楚一點.. : 實作一個function, prototype長這樣 : public Class<T> foo(Collection<T> x) {} : 例如說 : Collection<Integer> c = 隨便什麼東西 : foo(c) 傳回來的要是Integer.class : 這樣夠清楚了吧 : --- 那就如 qrtt1 說的, 這種做法只有另外再傳一個 class 進來 像這樣: public void foo(Collection<T> x , Class<T> clazz) { // do whatever u want with clazz } Generics 在這裡能為你做的只是幫你做 type checking, makesure 你傳的 clazz 沒有傳錯而已 e.g. //compilation failure public<T> void foo(new ArrayList<String>(), Integer.class); alien -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 202.155.236.82 ※ 編輯: adrianshum 來自: 202.155.236.82 (04/30 15:50)

05/01 02:23, , 1F
現在是這樣做的 但是多傳一個不必要的參數總覺得不太痛快
05/01 02:23, 1F
文章代碼(AID): #1862IrnG (java)
文章代碼(AID): #1862IrnG (java)