Interfaz nativa Kotlin

¿Kotlin utiliza la misma implementación de interfaz nativa que Java bajo el capó? ¿Es tan eficiente (o ineficaz) como en Java (costo de transferencia de objects, flujos de bytes, etc.)?

Debajo del capó, la implementación es la misma, porque se convertirá en el mismo código Java. Significa que es eficiente como tu código Java.

Dada esta class de Kotlin con el método nativo nativeMethod() :

 class ExampleJni { companion object { init { System.loadLibrary("example-jni") } } external fun nativeMethod(): String } 

Utilizará la "misma" implementación de esta class de Java (la conversión no es exactamente la misma, pero no afectará la implementación nativa):

 public class ExampleJni { static { System.loadLibrary("hello-jni"); } public final native String nativeMethod(); } 

EDITAR

Para ser más claro sobre la conversión. Si descomstacks el código de Kotlin, puedes ver que se ha convertido en dos classs. El primero contiene los methods nativos:

 @dalvik.annotation.MemberClasses @kotlin.Metadata public final class ExampleJni { public static final ExampleJni$Companion Companion; public ExampleJni() { ... } static void <clinit>() { ... } @org.jetbrains.annotations.NotNull // Here you can see that the implementation is the same. public final native String nativeMethod() { ... } } 

El otro es la class interna relacionada con el companion object .

 @dalvik.annotation.EnclosingClass @dalvik.annotation.InnerClass @kotlin.Metadata public final class ExampleJni$Companion { private ExampleJni$Companion() { ... } public ExampleJni$Companion(DefaultConstructorMarker) { ... } } 
  • Try-with-resources en Kotlin
  • ¿Cómo inyectar en var en Kotlin?
  • No se puede importar un package generado swig
  • No se puede enviar datos de formulario / múltiples con Volley
  • Filtro de list dentro del range externo - KOTLIN
  • TornadoFX ¿Cómo crear MDI con una list de models de windows hijas?
  • El uiThread de Anko no se dispara esporádicamente
  • ¿Cómo permitir que una class de datos implemente Interfaz / extiende properties de Superclass en Kotlin?
  • Kotlin anula la diversión con subtipo
  • No se puede ejecutar la aplicación JavaFX - Kotlin
  • Cómo declarar varias properties en una línea