Kotlin 使用地点差异
示例
使用站点差异类似于Java通配符:
投影外:
val takeList : MutableList<out SomeType> = ... // Java: List<? extends SomeType> val takenValue : SomeType = takeList[0] //好的,因为上限是SomeType takeList.add(takenValue) //错误,未指定泛型的下限
投影中:
val putList : MutableList<in SomeType> = ... // Java: List<? super SomeType> val valueToPut : SomeType = ... putList.add(valueToPut) //好的,因为下界是SomeType putList[0] //该表达式的类型为Any,因为未指定上限
星状投影
val starList : MutableList<*> = ... // Java: List<?> starList[0] //该表达式的类型为Any,因为未指定上限 starList.add(someValue) //错误,未指定泛型的下限
也可以看看:
从Java调用Kotlin时,泛型泛型互操作性。
热门推荐
10 祝女儿简短祝福语大全
11 大学新年祝福语简短创意
12 元旦适合的祝福语简短
13 朋友出远门祝福语简短
14 初六简短的祝福语
15 祝男孩生日祝福语简短
16 同事调离的祝福语简短
17 拜年红包的祝福语简短
18 妈妈生日祝福语简短励志