8.扩展成员

针对实际开发中的各种utils
定义:
1.为现有类添加方法、属性
2.java调用扩展成员类似调用静态方法

//java中TextUtils.isEmpty()的实现
public static boolean isEmpty(@Nullable CharSequence str) {
       return str == null || str.length() == 0;
}

Kotlin 扩展方法

private var text:String?=null
fun String?.isEmpty(): Boolean{
    return this == null || this.length == 0
}
fun main() {
    val empty = text.isEmpty()
}

同样支持扩展操作符方法

operator fun String.times(int: Int): String{
    val stringBuilder = StringBuilder()
    for(i in 0 until int){
        stringBuilder.append(this)
    }
    return stringBuilder.toString()
}
fun main() {
    println("abc" * 16)
}

kotlin扩展属性,扩展属性不支持backfield

var String.a: String
    get() = "abc"
    set(value) {
        field=value//field报错找不到
    }

你可能感兴趣的:(8.扩展成员)