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 官宣新年祝福语简短