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时,泛型泛型互操作性。
热门推荐
3 祝福语简短的微信
10 幼儿祝福语大全简短贺卡
11 感谢教官文案祝福语简短
12 鼠年同事祝福语简短创意
13 元旦祝福语 简短独特群发
14 妈咪跟我生日祝福语简短
15 给儿子新婚祝福语简短
16 伴娘祝福语长文案简短
17 恭喜高考完祝福语简短
18 生日祝福语送老公简短