美文网首页
Kotlin定义Interface函数

Kotlin定义Interface函数

作者: 王怀智 | 来源:发表于2021-08-09 13:02 被阅读0次

    我们日常写Android监听器回调经常使用到的方式:

    -----java版本------

    interface OnClickListener{
      public void onClick(View view);
    }
    
    private OnClickListener listener;
    
    public void setClickListener(OnClickListener listener){
      this.listener = listener;
    }
    

    -----kotlin版本-----

    interface OnClickListener{
      fun onClick(view:View);
    }
    
    private lateinit var listener:OnClickListener;
    
    fun setClickListener(listener:OnClickListener){
      this.listener = listener;
    }
    

    使用Lambda 表达式可实现SAM转换
    所以使用setClickListener{
    // to do something
    }


    -------SAM转换--------

    private lateinit var onClick:(View)->Unit
    fun setClickListener(onClick:(View)->Unit){
      this.onClick = onClick
    }
    

    使用时:

    setClickListener{
      (view:View)->{
        // to do something
      }
    }
    

    相关文章

      网友评论

          本文标题:Kotlin定义Interface函数

          本文链接:https://www.haomeiwen.com/subject/pxrzvltx.html