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 英语祝福语搞笑短句简短