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
相关推荐
石山代码2 小时前
ArrayList / HashMap / ConcurrentHashMap
java·开发语言
AskHarries3 小时前
系统提示词、开发者指令和用户输入的优先级
java·前端·数据库
daidaidaiyu4 小时前
ThingsBoard 规则链系统源码分析和自定义定时器
java
小毛驴8504 小时前
spring-boot-maven-plugin,maven-compiler-plugin 功能对比
java·python·maven
csdn_aspnet4 小时前
Java 霍尔分区算法(Hoare‘s Partition Algorithm)
java·开发语言·算法
霸道流氓气质5 小时前
通义灵码 IDEA 插件完全使用指南
java·ide·intellij-idea
诸葛务农5 小时前
道路行驶条件下电动汽车永磁电机的有效使用寿命及永磁体的失效和回收再利用(下)
java·开发语言·算法
Percep_gan5 小时前
Java8中的stream的测试使用
java
砍材农夫5 小时前
物联网实战:Spring Boot MQTT | MQTT 设备模拟器演示(附源码)
java·spring boot·后端·物联网·spring·netty
EAIReport5 小时前
Spring AI 详解:Java 开发者快速落地 AI 应用
java·人工智能·spring