Kotlin 扩展函数与属性全解析
1. 扩展函数基础
Kotlin 的扩展函数是一种强大的特性,它允许我们为一个类添加新的功能,而无需继承该类或使用装饰器模式。从编译角度看,Kotlin 顶级扩展函数会被编译成带有接收者对象作为第一个参数的静态函数。例如,下面的扩展函数:
fun Context.toast(text: String) {
Toast.makeText(this, text, Toast.LENGTH_SHORT).show()
}
编译并反编译成 Java 后,会类似如下代码:
public class ContextExtKt {
public static void toast(Context receiver, String text) {
Toast.makeText(receiver, text, Toast.LENGTH_SHORT).show();
}
}
这意味着我们可以从 Java 代码中调用 Kotlin 的扩展函数,在 Java 中调用方式如下:
ContextExtKt.toast(context, "Some toast");
从 JVM 字节码的角度来看,扩展函数并没有真正添加到类中,而是在编译时将所有扩展函数的使用编译成静态函数调用。扩展函数和普通函数一样,可以应用函数修饰符,例如可以
超级会员免费看
订阅专栏 解锁全文
2844

被折叠的 条评论
为什么被折叠?



