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 -> ... } 
  • 在kotlin REPL中导入jar子
  • Kotlin或Swift能够像Javascript一样解析JSON吗?
  • 在Kotlin中满足条件时,最干净的方法来重新分配variables的值
  • 合格它在kotlin
  • 如何用kotlin标记List
  • 习惯性的Kotlin正则expression式
  • 安装Kotlin Android项目失败INSTALL_FAILED_DEXOPT
  • 如何在Kotlin中声明和初始化MutableSet?
  • RecyclerView在另一个RecyclerView(Mvvm + Databinding + Kotlin)
  • Gradle 3.0.0-alpha1与kotlin-android插件1.1.2-3不兼容?
  • 等号运算符不能在原始和盒装variables之间应用
  • Kotlin language will be the best programming language for Android.