kotlin对Java函数式API的使用

时间:2021-6-12 作者:qvyue

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()
声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:qvyue@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。