kotlin 多接口回调的实现方式(二)

16 篇文章 0 订阅

上一篇是纯kotlin实现,这一篇是基于现有Java接口做的kotlin拓展,最早是在stackoverflow上看的(现在忘了地址是哪个)。只是当时没看懂,当完成上一篇后,再看这一篇时候忽然就明白了作者的意思,这里做个记录。
代码可以直接运行,可以先运行下看下例子:

interface Callbacks {

    fun onCurrentLocation(location: String)

    fun onError()
}

class CallbacksImpl(private val onCurrentLocationF: (String) -> Unit, private val onErrorF: () -> Unit) : Callbacks {
    override fun onCurrentLocation(location : String) { onCurrentLocationF(location) }

    override fun onError() { onErrorF() }
}

lateinit var mCallBack: CallbacksImpl
fun  setListener(callBack: CallbacksImpl){
    println("-------->设置接口回调")
    mCallBack = callBack
}

fun error(){
    println("-------->调用回调监听")
    mCallBack.onError()
}

class TestIpc{//定义类是因为只有方法的时候Test没法运行
    @Test
    fun testIpc(){
        setListener(CallbacksImpl({

        },{
            println("----打印错误结果---->onError()")
        }))

        error()
    }
}

执行结果如下:

-------->设置接口回调
-------->调用回调监听
----打印错误结果---->onError()
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值