Kotlin 之 匿名接口 回调

Kt写法缩略版
函数思维模式

//使用在RV的adapter中的回调里面

//初始化创建匿名接口  回调
 private var mListener: ((a: Int, b: String) -> Unit)? = null
 //.....
  fun setOnItemClickListener(mListener: (position: Int, item: String) -> Unit) {
    this.mListener = mListener
  }
//调匿名回调接口赋值
mListener?.invoke(data, position.toString())
//用
    mineFragmentRvAdapter?.setOnItemClickListener2 { position, item ->
      showToast("$position ==== $item")
    }
**Unit**:无任何返回的类型  相当于Java的void
**invoke**:mListener?.invoke(data, position.toString()) 相当于mListener.data, position.toString()
                 

Java 原始版

      //创建用于回调接口
        interface OnItemClickListener {
          fun onItemClick(obj: Any?, position: Int)
        }
    //初始化 
       private var mItemClickListener: OnItemClickListener? = null
//方法调用
    fun setOnItemClickListener(itemClickListener: OnItemClickListener) {
        this.mItemClickListener = itemClickListener
    }
//赋值
mItemClickListener.onItemClick(mData[position], position)
//回调调用
  mineFragmentRvAdapter?.setOnItemClickListener(object : OnItemClickListener {
      override fun onItemClick(obj: Any?, position: Int) {
        showToast("$position ==== $obj")
      }
    });

    **Any**:所有没有显式声明基类的class,它的默认父类就是Any;相当于Java中的Object
    **object **:object的作用是调用内部匿名类
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

夢鑰

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值