preProcessHandler: (AppException) -> Boolean用法:

一、使用:

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>

4、终极总结(一句话)

(AppException) -> Boolean
= Kotlin 函数类型
= 接收一个异常,返回 Boolean
= 等价 Java 的 Predicate
相关推荐
特立独行的猫A5 小时前
用仓颉语言 cj-tauri 框架,五分钟给娃做了个鸿蒙形近字游戏
java·后端·python
budingxiaomoli12 小时前
Spring统一功能处理
java·后端·spring
Flynn Liang14 小时前
可观测性与成本治理:一次对话的 17 个观测点
java·langchain·可观测性·micrometer·langchain4j·token 成本·llm 监控
金銀銅鐵14 小时前
带您看懂字节码指令(三):同一行加法,为什么有四种指令
java·jvm
文丑颜不良啊18 小时前
LeetCode2821~2840题目解析
java·leetcode
apcipot_rain18 小时前
C++转Java日记(10)
java·开发语言
简 洁 冬冬19 小时前
泛型方法写法全面辨析:从「能编译」到「能跑」到「能用」
java·泛型
LGL6030A19 小时前
Java学习历程31——初识Spring Boot
java·spring boot·学习
Lansonli21 小时前
大数据Spark(八十八):Spark任务资源之Standalone集群测试
java·服务器·spark
budingxiaomoli1 天前
Spring AOP
java·spring·java-ee