kotlin方法回调
时间: 2024-08-16 10:09:22 浏览: 86
在Kotlin中,方法回调是一种设计模式,它允许你在函数或方法完成某个操作后执行特定的行为。通常,当一个函数需要异步执行某个任务并期望在完成后得到结果或通知时,会使用回调。Kotlin支持多种回调形式:
1. **lambda表达式**:你可以直接提供一个匿名函数作为参数传递给需要处理结果的地方,如`doSomething()`函数接受一个`(String) -> Unit`类型的参数。
```kotlin
doSomething { result ->
// 在这里处理result
}
```
2. **接口和委托**:通过定义一个接口或者使用`Callback`委托,让你可以在不同场景下替换具体的实现。例如,`AsyncTask`通常使用`OnPostExecute`接口来处理完成后的操作。
```kotlin
interface ResultCallback {
fun onSuccess(result: String)
fun onFailure(error: Exception)
}
task.execute(object : ResultCallback {
override fun onSuccess(result: String) {
// 执行成功回调
}
override fun onFailure(error: Exception) {
// 执行失败回调
}
})
```
3. **扩展函数和属性**:Kotlin的扩展功能允许你在已有类型上添加新的回调方法,这在处理事件或者响应系统变化时非常有用。
```kotlin
fun view.doSomething(onSuccess: (String) -> Unit, onFailure: (Exception) -> Unit) {
// 异步执行任务...
if (success) onSuccess("Done")
else onFailure(Exception())
}
```
阅读全文