没啥好说的,看标题就明白了。代码比较绕,慢慢看….
本来想解释下代码,不过可能还在受上一篇帖子的影响吧,不知道说些什么…
有不明白的留言吧…
可以先把代码复制一份到电脑上运行一下,先看看效果
package com.example.kotlinapplication
import org.junit.Test
/** 多接口回调的代码测试 */
typealias Fun1 = (String) -> Unit
typealias Fun2 = (String,String) -> Unit
typealias Fun3 = (Fun1)->Unit
typealias Fun4 = (Fun2)->Unit
typealias CallBack = (Fun3,Fun4) -> Unit
class MultiCallBack{
lateinit var newCall:CallBack
//用于实现接口回调的方法
fun callBack(call: CallBack){
newCall = call
println("callBack调用")
}
var mFun:Fun1? = null
//第一次赋值
fun setCallBack(){
println("setCallBack调用")
val fun1:Fun3 = {
mFun = it
}
val fun2:Fun4 = {
it("2","3")
}
newCall(fun1,fun2)
}
//第二次赋值
fun setCallBack2(){
println("调用setCallBack2")
mFun?.invoke("重新复制")
}
//测试代码
@Test
fun callBackTestMain(){
callBack{ fun0,fun1 ->
fun0{
println("fun0读取的内容:$it")
}
fun1{ value1,value2 ->
println("fun1读取的内容:value1-->${value1}和value2---->${value2}")
}
}
setCallBack()
setCallBack2()
}
}