Kotlin anonim class implementar interfaz

Mi interfaz de kotlin:

interface IRunnable<T> { fun doWork(): T } 

luego creo class anónima implementada mi interfaz:

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

si la interfaz en java, el código se ve como

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

¿Alguna idea, cómo implementar la interfaz en kotlin como java?

por favor, no use IRunnable tal nombramiento en kotlin.

Al igual que en esta pregunta. Cómo kotlin hace que setOnClickListener acepte funciones como parámetro descrito, Kotlin hace SAM solo para interfaces Java. Pero puede cambiar la interfaz a favor del tipo funcional o implementar la interfaz y usarla como en el siguiente ejemplo:

 fun main(args: Array<String>) { class Executor { fun <T> execute(task: SimpleRunnable<T>): CompletableFuture<T> { return CompletableFuture.supplyAsync { task.doWork() } } } val executor = Executor() executor.execute(SimpleRunnableImpl { "42" }) executor.execute(object : SimpleRunnable<Long> { override fun doWork(): Long { return 0L } }) } interface SimpleRunnable<T> { fun doWork(): T } class SimpleRunnableImpl<T>(val task: () -> T) : SimpleRunnable<T> { override fun doWork(): T = task() } 
  • RecyclerView - NullPointerException en .findViewById
  • Kotlin: Un setter pnetworkingeterminado que devuelve "this"
  • La notificación de respuesta directa comienza una actividad
  • Kotlin y Java en el mismo proyecto utilizando Eclipse IDE
  • Afirmación con post de error en Kotin
  • Kara Kotlin para web, integraciones futuras
  • Android Kotlin child onClick bloquea a los padres OnTouch
  • Kotlin: No se puede importar a pedido del object
  • El resultado de MailCore: htmlRenderingOperation siempre es nulo
  • Asynchronization de reference no resuelta en Kotlin
  • Cómo crear una list inmutable que debe recorrer un campo de otra list