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 {
}