Kotlin anonim类实现接口

我的kotlin界面:

interface IRunnable { fun doWork(): T } 

然后我创建匿名类实现我的界面:

 executor!!.execute(object : IRunnable { override fun doWork(): Long { return 0L } }) 

如果在java中的接口,代码看起来像

  executor!!.execute(IRunnable2 { return@IRunnable2 0L }) 

任何想法,如何实现接口像Java一样的kotlin?

请不要在kotlin中使用IRunnable这样的命名。

正如在这个问题中, kotlin如何使setOnClickListener接受函数作为参数描述,Kotlin仅为Java接口做SAM。 但是,您可以改变接口而选择functiontypes,或者实现接口,并使用它,如下例所示:

 fun main(args: Array) { class Executor { fun  execute(task: SimpleRunnable): CompletableFuture { return CompletableFuture.supplyAsync { task.doWork() } } } val executor = Executor() executor.execute(SimpleRunnableImpl { "42" }) executor.execute(object : SimpleRunnable { override fun doWork(): Long { return 0L } }) } interface SimpleRunnable { fun doWork(): T } class SimpleRunnableImpl(val task: () -> T) : SimpleRunnable { override fun doWork(): T = task() }