Kotlin泛型 (2)泛型属性

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

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

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

fun main(args: Array?) {
    val array1 = arrayListOf()
    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

你可能感兴趣的:(Kotlin泛型 (2)泛型属性)