[問題] kotlin 泛型的問題

作者: minesos520 (!!!)   2019-12-08 02:17:02
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不同的嗎@@
作者: y3k (激流を制するは静水)   2019-12-09 09:04:00
因為你的ccc是掛在List<T>底下 MutableList<>沒改到...雖然是這樣解釋啦 但是事實上MutableList<T>並沒有override List<T>.contains() 而是因為mutableListOf()回傳的是ArrayList() 才導致這個現象

Links booklink

Contact Us: admin [ a t ] ucptt.com