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
相关推荐
Lyyaoo.2 小时前
【JAVA基础面经】native方法
java·开发语言
牛十二2 小时前
nacos2.4连接出错源码分析
java·linux·开发语言
阿巴斯甜2 小时前
userList.stream().sorted((u1, u2) -> u2.getAge() - u1.getAge()); 怎么判断是升序还是降序?
java
小松加哲2 小时前
AspectJ编译期织入实战
java·开发语言
贺小涛2 小时前
python和golang进程、线程、协程区别
java·python·golang
Seven972 小时前
Tomcat的架构设计和启动过程详解
java
Mr-Wanter2 小时前
踩坑记录:IDEA 启动服务连续三次 OOM 内存溢出完整解决
java·ide·intellij-idea·oom
阿巴斯甜2 小时前
User::getName含义?
java
2601_949818092 小时前
SpringBoot项目集成ONLYOFFICE
java·spring boot·后端