kotlin对Java函数式API的使用

2021-06-10  本文已影响0人  别看后面有人

kotlin调用Java的时候可以用函数式API,但是有一定的限制。如果Kotlin调用java方法,并且该方法接收一个Java单抽象方法接口参数,就可以使用函数式API,Java单抽象方法是接口只有一个待实现方法,如果多个待实现方法,则无法使用
java中最常见的单抽象方法接口——Runnable接口,这个接口只有一个待实现方法run()
我们常见的类Thread类接收Runnable参数。

 new Thread(new Runnable(){
            @Override
            public void run() {
                
            }
        }).start();

这是java代码创建并执行的一个子线程,使用的是匿名内部类的写法,我们创建一个Runnable接口的匿名类实例,并把它传给Thread类的构造方法,最后调用start
()方法执行

kotlin的版本,写法如下:

Thread(object :Runnable{
        override fun run() {
            TODO("Not yet implemented")
        }
    }).start()

如果java方法中的参数列表中有且仅有一个Java单抽象方法接口参数,这样接口名就可以省略,代码更加精简

Thread(Runnable{
     println("do thread")
 }).start()
上一篇 下一篇

猜你喜欢

热点阅读