Kotlin定義Interface函數(shù)

我們?nèi)粘?xiě)Android監(jiān)聽(tīng)器回調(diào)經(jīng)常使用到的方式:

-----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 表達(dá)式可實(shí)現(xiàn)SAM轉(zhuǎn)換
所以使用setClickListener{
// to do something
}


-------SAM轉(zhuǎn)換--------

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

使用時(shí):

setClickListener{
  (view:View)->{
    // to do something
  }
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 寫(xiě)在開(kāi)頭:本人打算開(kāi)始寫(xiě)一個(gè)Kotlin系列的教程,一是使自己記憶和理解的更加深刻,二是可以分享給同樣想學(xué)習(xí)Kot...
    胡奚冰閱讀 1,409評(píng)論 0 6
  • 五、Lambda編程 1.Lambda表達(dá)式和成員引用 Lambda簡(jiǎn)介:作為函數(shù)參數(shù)的代碼塊。可以理解為簡(jiǎn)化表達(dá)...
    TomyZhang閱讀 541評(píng)論 0 0
  • 本篇內(nèi)容清單如下: 類(lèi):聲明方式、實(shí)例創(chuàng)建、類(lèi)成員、構(gòu)造函數(shù)(1 主、n 次) 繼承:覆蓋方法、覆蓋屬性、類(lèi)初始化...
    Coralline_xss閱讀 767評(píng)論 0 0
  • lambda即lambda表達(dá)式,簡(jiǎn)稱(chēng)lambda。本質(zhì)上是可以傳遞給其它函數(shù)的一小段代碼。有了lambda,可以...
    程自舟閱讀 16,248評(píng)論 1 26
  • Kotlin在設(shè)計(jì)之初,就考慮了與Java的互操作性。因此Java和Kotlin是可以很方便的進(jìn)行互相調(diào)用的。雖然...
    雪中悍刀跑閱讀 4,991評(píng)論 0 1

友情鏈接更多精彩內(nèi)容