作者minesos520 (!!!)
看板AndroidDev
标题[问题] kotlin 泛型的问题
时间Sun Dec 8 02:17:02 2019
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://webptt.com/cn.aspx?n=bbs/AndroidDev/M.1575742626.A.A8B.html
1F:→ y3k: 因为你的ccc是挂在List<T>底下 MutableList<>没改到 12/09 09:04
2F:→ y3k: ...虽然是这样解释啦 但是事实上MutableList<T>并没有overrid 12/09 09:06
3F:→ y3k: e List<T>.contains() 而是因为mutableListOf()回传的是 12/09 09:07
4F:→ y3k: ArrayList() 才导致这个现象 12/09 09:07