[問題] kotlin 泛型的問題

看板AndroidDev作者 (!!!)時間5年前 (2019/12/08 02:17), 編輯推噓0(004)
留言4則, 1人參與, 5年前最新討論串1/1
open class Z open class ZZ : Z() open class ZZZ : ZZ() open class ZZZZ : ZZZ() fun <T> List<T>.ccc(t: T): Boolean { return contains(t) } val list = mutableListOf<ZZZZ>() list.ccc("Q") list.ccc(0) list.ccc(Z()) list.ccc(ZZ()) list.ccc(ZZZ()) 想請問list的 T 是 ZZZZ,為什麼我在傳入參數時 不會被限制呢? 難道 List<T> 跟 ccc(t:T) 這兩個T不同的嗎@@ -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 223.136.148.76 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/AndroidDev/M.1575742626.A.A8B.html

12/09 09:04, 5年前 , 1F
因為你的ccc是掛在List<T>底下 MutableList<>沒改到
12/09 09:04, 1F

12/09 09:06, 5年前 , 2F
...雖然是這樣解釋啦 但是事實上MutableList<T>並沒有overrid
12/09 09:06, 2F

12/09 09:07, 5年前 , 3F
e List<T>.contains() 而是因為mutableListOf()回傳的是
12/09 09:07, 3F

12/09 09:07, 5年前 , 4F
ArrayList() 才導致這個現象
12/09 09:07, 4F
文章代碼(AID): #1Tw-oYgB (AndroidDev)
文章代碼(AID): #1Tw-oYgB (AndroidDev)