Lambda在kotlin中的接口实现

kotlin中的代码会是什么样子,似乎没有什么工作我尝试:

public interface AnInterface { void doSmth(MyClass inst, int num); } 

在里面:

 AnInterface impl = (inst, num) -> { //... } 

3 Solutions collect form web for “Lambda在kotlin中的接口实现”

如果AnInterface是Java,则可以使用SAM转换 :

 val impl = AnInterface { inst, num -> //... } 

否则,如果界面是Kotlin …

 interface AnInterface { fun doSmth(inst: MyClass, num: Int) } 

…您可以使用object语法来匿名实现它:

 val impl = object : AnInterface { override fun doSmth(inst:, num: Int) { //... } } 

你可以使用一个对象expression式

所以它看起来像这样:

 val impl = object : AnInterface { override fun(doSmth: Any, num: Int) { TODO() } } 

如果您将接口及其实现重写为Kotlin,那么您应该删除接口并使用functiontypes:

 val impl: (MyClass, Int) -> Unit = { inst, num -> ... } 
  • 数据列表没有显示在Android应用程序的主要活动的回收站视图中,使用kotlin进行开发。
  • 在Kotlin中更改循环索引
  • 为什么我得到@提供注释错误?
  • Kotlin和Java String之间的差异与正则expression式分割
  • 在java开关expression式中使用kotlin常量
  • Kotlin多层它参考
  • Kotlin从2个数组中过滤最大值的方法?
  • Kotlin用集合中的lastOrNull()替换isEmpty()和last()
  • 信号7(SIGBUS),代码2(BUS_ADRERR)
  • 在kotlin android tailrec函数返回0
  • SonarQube可以分析Android Kotlin代码覆盖率吗?
  • Kotlin language will be the best programming language for Android.