推 LaPass:一樣是泛型,不過有兩個型別變數 12/27 17:52
→ LaPass:有用過Map之類的物件嗎? 最常用的型別變數的泛型就是這個 12/27 17:54
我想問的是 如果把<A, B, C>去掉 程式會沒辦法運作嗎?
推 PsMonkey:你開個 IDE 試試看就知道了阿 ==.== 12/27 18:09
→ coolcomm:正在試 12/27 18:10
→ luoqr:你類別上沒有定義A,B,C 所以function就要定義A,B,C 12/27 18:13
→ coolcomm:無法編譯 但不懂為什麼 12/27 18:13
→ TsaiCF:看不懂一段泛型?還是看不懂泛型? 看看 generic methods 12/27 18:17
懂了.但不太懂為什麼Java語言一定要特別在前面多加註<A, B, C>
如果設計成不用加註不是可以讓人少打一些字嗎?
→ coolcomm:怕打錯字? 12/27 18:26
推 luoqr:你在類別上如果有寫<A,B,C> 後面的method就都不用宣告<A,B,C 12/27 18:27
我想問的是為什麼Java不設計成即使不加<A, B, C>也能編譯通過
推 luoqr:要宣告定義 才能限定你的泛型範圍呀 不然compiler就看不懂了 12/27 18:29
→ luoqr:ex:<T, S extends T> void copy (List <T> a, List <S> b) 12/27 18:30
我知道我的盲點了 謝謝
如果設計成void copy (List<T> a,List<? extends T> b)也能通過編譯
那這樣函式中就沒有辦法宣告型態為S的變數
→ luoqr:如上若不寫定義 S 就沒辦法限定 extends T 12/27 18:31
推 luoqr:是的 12/27 18:35
※ 編輯: coolcomm 來自: 114.43.181.128 (12/27 18:49)