Пакет kotlin.jvm
Функции и аннотации, специфичные для платформы Java.
Типы
JvmRepeatable
Делает класс аннотаций повторяемой в Java и Kotlin. Повторяемая аннотация может быть применена более одного раза к одному элементу.
typealias JvmRepeatable = Repeatable
Аннотации
JvmDefault
Указывает, что для неабстрактного члена Kotlin-интерфейса должна быть сгенерирована JVM-метод по умолчанию.
annotation class JvmDefault
JvmDefaultWithCompatibility
Принудительно заставляет компилятор генерировать аксессоры совместимости для аннотированного интерфейса в классе DefaultImpls. Обратите внимание, что если интерфейс аннотирован этой аннотацией для обеспечения бинарной совместимости, публичные производные Kotlin-интерфейсы также должны быть аннотированы ей, потому что их методы DefaultImpls будут использоваться для доступа к реализациям из класса DefaultImpls исходного интерфейса.
annotation class JvmDefaultWithCompatibility
JvmDefaultWithoutCompatibility
Препятствует компилятору от генерации аксессоров совместимости для аннотированного класса или интерфейса и подавляет любые связанные с этим предупреждения о совместимости. Другими словами, эта аннотация заставляет компилятор генерировать аннотированный класс или интерфейс в режиме -Xjvm-default=all, где генерируются только JVM-методы по умолчанию, без DefaultImpls.
annotation class JvmDefaultWithoutCompatibility
JvmField
Инструктирует Kotlin-компилятор не генерировать геттеры/сеттеры для этого свойства и экспонировать его как поле.
annotation class JvmField
JvmInline
Указывает, что данный класс значений является встроенным классом.
annotation class JvmInline
JvmMultifileClass
Инструктирует Kotlin-компилятор генерировать многофайловый класс с функциями и свойствами верхнего уровня, объявленными в этом файле, как одну из его частей. Имя соответствующего многофайлового класса предоставляется аннотацией JvmName.
annotation class JvmMultifileClass
JvmName
Указывает имя Java-класса или метода, которое генерируется из этого элемента.
annotation class JvmName
JvmOverloads
Инструктирует Kotlin-компилятор генерировать перегрузки для этой функции, которые заменяют значения параметров по умолчанию.
annotation class JvmOverloads
JvmRecord
Инструктирует компилятор пометить класс как запись и сгенерировать соответствующие методы toString/equals/hashCode
annotation class JvmRecord
JvmSerializableLambda
Заставляет аннотированную лямбда-функцию реализовывать java.io.Serializable, генерирует реализацию toString и добавляет метаданные рефлексии.
annotation class JvmSerializableLambda
JvmStatic
Указывает, что при компиляции должен быть сгенерирован дополнительный статический метод, если это функция. Если этот элемент — свойство, должны быть сгенерированы дополнительные статические геттеры/сеттеры.
annotation class JvmStatic
JvmSuppressWildcards
Инструктирует компилятор генерировать или опускать дикие символы для аргументов типа, соответствующих параметрам с вариативностью на этапе объявления, например, как у Collection<out T>.
annotation class JvmSuppressWildcards
JvmSynthetic
Устанавливает ACC_SYNTHETIC флаг на аннотированную цель в Java-байткоде.
annotation class JvmSynthetic
JvmWildcard
Инструктирует компилятор генерировать дикий символ для аргументов типа, соответствующих параметрам с вариативностью на этапе объявления.
annotation class JvmWildcard
PurelyImplements
Инструктирует Kotlin-компилятор рассматривать аннотированный Java-класс как чистую реализацию данного Kotlin-интерфейса. "Чистая" здесь означает, что каждый параметр типа класса становится неплатформенным аргументом типа этого интерфейса.
annotation class PurelyImplements
Strictfp
Помечает генерируемый JVM-метод из аннотированной функции как strictfp, что означает, что точность операций с плавающей точкой, выполняемых внутри метода, должна быть ограничена для достижения лучшей переносимости.
annotation class Strictfp
Synchronized
Помечает генерируемый JVM-метод из аннотированной функции как synchronized, что означает, что метод будет защищён от одновременного выполнения несколькими потоками монитором экземпляра (или, для статических методов, класса), в котором определён метод.
annotation class Synchronized
Throws
Эта аннотация указывает, какие исключения должны быть объявлены функцией при компиляции в JVM-метод.
annotation class Throws
Transient
Помечает JVM-поле, являющееся основой аннотированного свойства, как transient, что означает, что оно не входит в стандартную сериализованную форму объекта.
annotation class Transient
Volatile
Помечает JVM-поле, являющееся основой аннотированного свойства, как volatile, что означает, что записи в это поле немедленно становятся видимыми другим потокам.
annotation class Volatile
Исключения
KotlinReflectionNotSupportedError
open class KotlinReflectionNotSupportedError : Error
Расширения для внешних классов
java.lang.Class
Свойства
annotationClass
Возвращает экземпляр KClass, соответствующий типу аннотации этой аннотации.
val <T : Annotation> T.annotationClass: KClass<out T>
declaringJavaClass
Возвращает экземпляр Java Class перечисления, к которому принадлежит данный константный элемент.
val <E : Enum<E>> Enum<E>.declaringJavaClass: Class<E>
java
javaClass
Возвращает исполняемый Java-класс этого объекта.
val <T : Any> T.javaClass: Class<T>
val <T : Any> KClass<T>.javaClass: Class<KClass<T>>
javaObjectType
javaPrimitiveType
Функции
© 2010–2023 JetBrains s.r.o. and Kotlin Programming Language contributors
Licensed under the Apache License, Version 2.0.
https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.jvm/index.html