La relación entre la interfaz compartida en Java y Kotlin (por ejemplo: Lista <>)

La pregunta surgió cuando eché un vistazo más de cerca a la function en línea kotlin .map. Esta es su definición

public inline fun <T, R> Iterable<T>.map(transform: (T) -> R): List<R>{ return mapTo(ArrayList<R>(collectionSizeOrDefault(10)), transform)} 

En la definición de la function, debe devolver una Lista, que se define en Collection.kt. Sin embargo, está devolviendo una ArrayList, que implementa una interfaz de Lista en Java (List.java)

¿Cuál es la relación entre la interfaz de Java y la interfaz de Kotlin? Me imagino que habría más ejemplos similares, ¿tal vez Set o Map?

En la plataforma JVM, la interfaz de Kotlin kotlin.collections.List se asigna a la interfaz Java java.util.List , y también lo es kotlin.collections.MutableList .

Significa que los usos de estas interfaces de Kotlin se comstackn a los usos de la interfaz de la List Java en bytecode. Por otro lado, los usos de la interfaz de la List Java en las firmas leídas de las bibliotecas se ven como kotlin.collections.(Mutable)List .

Hay más types mapeados: vea la reference .

Esto permite llamar a Kotlin desde Java y viceversa de forma continua mientras se representan los types de Java como classs kotlin.* En Kotlin, lo que, por ejemplo, nos salva de primitivas y matrices que no son classs, e introduce la inmutabilidad a través de interfaces .

  • ¿Qué es una forma concisa de copyr profundamente una MutableList 2D?
  • Obtener un par de numbers de la list de numbers en Kotlin
  • Android Spinner getDropDownView repite elementos después de la selección
  • Kotlin: creación de una list mutable con elementos repetitivos