简介:
平时Android开发中会使用各种各样的工具类函数,大部分工具类都是对原有对象的一种扩展,例如:
public static void startActivity(Activity act, Class clz){
Intent intent = new Intent(act, clz);
act.startActivity(intent);
}
对于这种形式,Kotlin给与我们提供更加方便的调用形式,不需要在调用的时候传入操作对象(例如上面代码的Activity类型函数形参),这就是扩展函数。
举个简单的例子:对于上面的工具类,在Kotlin中可以这样调用:act.startActivity(NewActivity.class),为了实现这种方便的调用,需要在Kotlin中做一些必要的工作。
fun Any.funcName(): String {}
inline Any.funcName(): String {}
fun Any.funcName() = this.apply {}
上面是扩展函数的一般格式,例如我们现在用Kotlin扩展函数重新为上面的工具类写一份Kotlin版本的:
fun Activity.startActivity(Class clz) {
Intent intent = new Intent(this, clz);
this.startActivity(intent);
}
现在我们对Activity类扩展了一个新方法:startActivity(Class clz),任何时候我们都可以调用Activity实例的startActivity()方法。
注意:
1.别忘记Kotlin的扩展函数实质就是工具类,任何使用的时候,你都需要import这个扩展函数。