一、使用:
1、调用出
第一种写法:
rust
//预处理函数:
val preProcessHandler: (AppException)->Boolean = { e ->
if (e.errCode == "1001"){
//执行特殊操作逻辑
true
}else{
false
}
}
//获取首页列表
context?.let { mainViewModel.getHomeList(it,preProcessHandler) }
第二种写法:
javascript
//获取首页列表
context?.let { mainViewModel.getHomeList(it){ e ->
if (e.errCode == "1001"){
//执行特殊操作逻辑
true
}else{
false
}
} }
2、执行处
kotlin
fun getHomeList(mContext: Context, preProcessHandler: (AppException) -> Boolean) {
val map = RequestParameterUtils.getMapData()
map.put("appCode", "XXX")
map.put("client","XXX")
request({ apiService2.getHomeList(map) }, {
homeData.value = it
CommonPermissionUtils.setBasePermission(it)
}, {
//判断
var b = preProcessHandler.invoke(it)
if (!b){
ToastUtils.showToast(mContext,it.errorMsg?:"")
}
}, true)
}
3、它对应 Java 里的哪个函数式接口?
一对一对应:
表格
| Kotlin 函数类型 | Java 函数式接口 |
|---|---|
() -> Unit |
Runnable / Consumer 无参无返 |
() -> T |
Supplier<T> 无参有返 |
(A) -> B |
Function<A,B> 一参一返 |
(AppException) -> Boolean |
Predicate<AppException> |
(A) -> Unit |
Consumer<A> |