Kotlin нацелен на Java 8, потому что он представляет основные изменения JVM, которые Kotlin может использовать (например, методы по умолчанию в интерфейсах и invokedynamic
изменения, которые включают Java-лямбды).Обратите внимание, что у Kotlin нет отдельной цели Java 7;единственные изменения, относящиеся к Kotlin, существуют в расширенной стандартной библиотеке, и они не требуют изменений в самом Kotlin, просто дополнительная библиотека.То же самое должно относиться к большинству новых выпусков.Т.е., возможно, будет kotlin-stdlib-jdk10/11
, и не обязательно даже это.
Следующее такое изменение, которое может произойти, это когда Java добавляет типы значений и / или обобщения к примитивам (у которых нет целевой версии).еще ).В то время как существующие версии Kotlin, вероятно, не смогут использовать типы значений (в зависимости от дизайна), Kotlin действительно реализует обобщение над примитивом на уровне языка, совершенно аналогично тому, как это имеет неабстрактные методы в интерфейсах.