天天看点

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