Kotlin 代替Java接口回调,就这么简单

假如你使用旧的接口回调:

通常三步:1 定义接口和方法;2 使用接口中方法;3 继承接口并实现方法;

例:

Kotlin 复制代码
class XXXAdapter{
    public var mClickCollBack: clickCollBack?= null   //1定义
    interface  clickCollBack {                        //1定义
        fun click(int: Int)                           //1定义
    }
   
         itemView.setOnClickListener {
                mClickCollBack?.click(position)  //2使用
         }
}

实现:

Kotlin 复制代码
    adapter.mClickCollBack = object : XXXAdapter.clickCollBack {
            override fun click(int: Int) {
                 //做你的事
            }
    }

使用Kotlin呢?

也是三步:

1定义抽象方法 2 直接调用 3直接实现

Kotlin 复制代码
class XXXAdapter(var click:(int: Int) -> Unit){
    
   
         itemView.setOnClickListener {
                click(position)  //2使用
         }

}
Kotlin 复制代码
    adapter.click{
        // it 直接表示上级传下来的position
    }
相关推荐
小裕哥略帅27 分钟前
订单管理--实时算出在途数量、收货数量、到货数量、已发货数量和未发货数量
java·开发语言
_OP_CHEN37 分钟前
C++进阶:(五)map系列容器的全面解析
开发语言·c++·map·红黑树·stl容器·键值对·mapoj题
大米粥哥哥39 分钟前
c++ libcurl报错Send failed since rewinding of the data stream failed【已解决】
开发语言·c++·http·curl·rewind
Nebula_g39 分钟前
C语言应用实例:解方程(二分查找)
c语言·开发语言·学习·算法·二分查找·基础
散峰而望41 分钟前
C语言刷题-编程(一)(基础)
c语言·开发语言·编辑器
Dxxyyyy44 分钟前
零基础学JAVA--Day27(注释+异常+异常处理方法)
java·开发语言
Craaaayon1 小时前
如何选择两种缓存更新策略(写缓存+异步写库;写数据库+异步更新缓存)
java·数据库·redis·后端·缓存·mybatis
AAA卷不动了1 小时前
JVM(二)------ 类加载、初始化与单例模式的联系
java·jvm·单例模式
一 乐1 小时前
点餐|智能点餐系统|基于java+ Springboot的动端的点餐系统小程序(源码+数据库+文档)
java·前端·数据库·vue.js·spring boot·小程序·论文
视图猿人1 小时前
RxJS基本使用及在next.js中使用的例子
开发语言·javascript