Пакет 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
annotation class Synchronized
Throws
Эта аннотация указывает, какие исключения должны быть объявлены функцией при компиляции в метод JVM.
annotation class Throws
Transient
Помечает базовое поле JVM аннотированного свойства как transient, что означает, что оно не является частью стандартной сериализованной формы объекта.
annotation class Transient
Volatile
Помечает базовое поле JVM аннотированного свойства var как volatile, что означает, что чтение и запись в это поле являются атомарными, а записи всегда становятся видимыми для других потоков. Если другой поток считывает значение этого поля (например, через его аксессор), он видит не только это значение, но и все побочные эффекты, которые привели к записи этого значения.
annotation class 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