Как я могу определить, когда тип Kotlin будет сопоставлен с типом Java?

контекст

Тип kotlin.String Kotlin в настоящее время определяется следующим образом (1.1.2) :

 public class String : Comparable<String>, CharSequence { companion object {} // Operator and override function definitions. } 

Некоторые расширения, определенные на kotlin.String принимающий экземпляр в тип java.lang.String для пересылки вызовов метода. Например, (1.1.2) :

 @kotlin.internal.InlineOnly public inline fun String.toLowerCase(): String = (this as java.lang.String).toLowerCase() 

Тем не менее, ничто в определении типа kotlin.String дает мне понять, что этот бросок гарантированно будет успешным.

Вопросов

  • Можно ли легко определить, каким образом данный тип Kotlin сопоставляется с соответствующим типом Java таким образом?
  • Где это преобразование действительно происходит? (Если хотите, вы можете найти ссылку на соответствующий исходный код.)

В Kotlin / JVM kotlin.String – один из отображенных типов – тип, который представлен во время выполнения с некоторым существующим классом JDK.

Поэтому литье между kotlin.String и java.lang.String преуспевает во время выполнения, хотя это два несвязанных типа из точки системы типа Котлин.

Intereting Posts
Как добавить репозиторий maven по URL-адресу, используя kotlinscript DSL (build.gradle.kts) Есть ли способ автозаполнения имен аргументов? Cloud.orbit.exception.UncheckedException: не знаю, как обрабатывать состояние SonarQube: как применить несколько профилей качества к одному проекту? Как использовать OnClickListener для создания простого события // Изменение текста или цвета Не удалось синхронизировать Gradle: причина: com / android / build / gradle / BaseExtension Какой способ лучше, если я надеюсь использовать синтаксис, как статическая функция в Котлин? Как настроить Jacoco со Spek в мультипроекте? Kotlin с Android: базовые классы и расширения для Android Kotlin Есть ли способ построить HashSet с функцией инициализации в Котлин? Проблема с выпуском Android 3.0 Gradle 3.0 Получить свойство KProperty свойства расширения без пакета Не удалось добавить расширения Android Kotlin в мой проект Как создать экземпляр анонимного класса абстрактного класса в Котлине? Объявление Admob Interstitial на кнопке Click