Возможно ли, что kotlin вызывает код jvm11?Как? - PullRequest
0 голосов
/ 15 марта 2019

Kotlin генерирует код jvm8 или jvm6.Рассмотрим следующее:

  • Вы пишете библиотеку jvm11 (в java)
  • Вы пишете приложение kotlin, которое хочет использовать библиотеку jvm11

Isэто возможно?Если да, то как это работает под капотом?

1 Ответ

1 голос
/ 15 марта 2019

Это то, как работает JVM и вообще не относится к Kotlin.

Допустим, у вас есть два класса Class1 и Class2, и Class1 необходимо вызвать Class2.Тогда байт-код Class1 использует только имя Class2 и подписи его членов.Он не знает и не заботится, скомпилирован ли Class2 для Java 5, Java 11 или Java 5000.

Байт-код Class1 говорит, например, "вызвать конструктор Class2 с этими аргументами".Когда этот код выполняется, загружается Class2 (если он еще не был) и его версия байт-кода сравнивается с той, которую понимает JVM.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...