Kotlin泛型 (2)泛型属性

2019-06-09  本文已影响0人  狼性代码人

  在 kotlin 中可以声明泛型属性,但是这种属性一定是扩展属性,不能是普通属性。提示:扩展属性是没有存储器的,即不能在访问器中使用 field 字段。

val <T> ArrayList<T>.first: T?
    get() = if (this.isEmpty()) null else this[0]

val <T> ArrayList<T>.last: T?
    get() = if (isNotEmpty()) this[size - 1] else null

fun main(args: Array<String>?) {
    val array1 = arrayListOf<Int>()
    println(array1.first)
    println(array1.last)

    val array2 = arrayListOf("a", "b", "c", "d")
    println(array2.first)
    println(array2.last)
}

2019-06-06 17:06:03.457 31719-31719/cn.ak.kot I/System.out: null
2019-06-06 17:06:03.457 31719-31719/cn.ak.kot I/System.out: null
2019-06-06 17:06:03.461 31719-31719/cn.ak.kot I/System.out: a
2019-06-06 17:06:03.461 31719-31719/cn.ak.kot I/System.out: d
上一篇下一篇

猜你喜欢

热点阅读