天天看點

Kotlin中的接口的實作Kotlin中的接口的實作

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