Kotlin中的接口的实现
以setOnClickListener为例,用Java的常规实现为:
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
}
});
由于Kotlin中完全舍弃了new关键字,因此创建匿名类的时候不能使用new,而要使用object关键字,所以在kotlin中的常规写法为:
button.setOnClickListener(object : View.OnClickListener{
override fun onClick(v: View?) {
}
})
在JDK1.8之后,Java支持了Lambda编程,对于只包含一个抽象方法的接口,可以使用Lambda表达式来实现,Java中使用Lambda表达式实现为:
button.setOnClickListener((v) -> {
});
而在Kotlin从第一个版本就开始支持了Lambda编程,得益于其出色的类型推导机制,可以对Lambda表达式进一步简化,直接对函数进行传递:
button.setOnClickListener {
}