我在kotlin中挣扎以获得与java中的函数接口相反的功能。我有以下问题。Kotlin函数类型而不是函数接口lambda
class ResultReceiverTest(handler : Handler) : ResultReceiver(handler) {
fun onResult(result : (resultCode : Int, resultData: Bundle) -> Unit){
// result() how to receive values from onReceiveResult() method?
}
override fun onReceiveResult(resultCode: Int, resultData: Bundle){
// how to call onResult from here?
// I want to pass resultCode, resultData parameter to onResult function
}
}
我有以下的情况,首先onReceiveResult
被称为那么我想onReceiveResult
的paramets到onResult
所以的价值,我可以能够通过值传递给result()
其正在实施由以下班级。
class StartService {
private var resultReceiverTest = ResultReceiverTest(Handler())
init{
resultReceiverTest.onResult({a, b -> something()})
}
fun something(){}
}
那么,如何从onReceiveResult
值传递给onResult
?我知道kotlin中的函数接口和匿名类解决方案。但我想用lambda实现它,这对我对lambda的理解也会有所帮助。
我在第二行'null'看到错误。我无法分配空值。 – UnKnown
找到了解决方案。我不得不将这个类型放在派生类中。 '((resultCode:Int,resultData:Bundle) - > Unit)?' – UnKnown
我如何调用'resultCode'?它显示错误使用显式'?.invoke()' – UnKnown