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
    }
相关推荐
小信丶21 分钟前
Spring 6 的 @HttpExchange 注解:声明式 HTTP 客户端的现代化利器
java·spring·http
扫地的小何尚2 小时前
NVIDIA Dynamo深度解析:如何优雅地解决LLM推理中的KV缓存瓶颈
开发语言·人工智能·深度学习·机器学习·缓存·llm·nvidia
野犬寒鸦2 小时前
多级缓存架构:性能与数据一致性的平衡处理(原理及优势详解+项目实战)
java·服务器·redis·后端·缓存
yi碗汤园3 小时前
【一文了解】C#的StringSplitOptions枚举
开发语言·前端·c#
帧栈5 小时前
开发避坑指南(58):Java Stream 按List元素属性分组实战指南
java
无敌最俊朗@5 小时前
C++ 序列容器深度解析:vector、deque 与 list
开发语言·数据结构·数据库·c++·qt·list
Da Da 泓5 小时前
LinkedList模拟实现
java·开发语言·数据结构·学习·算法
海琴烟Sunshine5 小时前
Leetcode 14. 最长公共前缀
java·服务器·leetcode
城管不管5 小时前
Lambda
java
Humbunklung5 小时前
VC++ 使用OpenSSL创建RSA密钥PEM文件
开发语言·c++·openssl