在 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
网友评论