Аннотация
interface Annotation
Базовый интерфейс, неявно реализуемый всеми интерфейсами аннотаций. Подробнее об аннотациях см. документацию по языку Kotlin.
Расширяемые свойства
annotationClass
Возвращает экземпляр KClass, соответствующий типу аннотации этой аннотации.
val <T : Annotation> T.annotationClass: KClass<out T>
Наследники
AssociatedObjectKey
Делает аннотированный класс аннотаций ключом связанного объекта.
annotation class AssociatedObjectKey
BuilderInference
Позволяет выводить типы аргументов дженериков функции из вызовов в параметре аннотированной функции этой функции.
annotation class BuilderInference
CCall
annotation class CCall
CEnumEntryAlias
Обозначает свойство, которое является псевдонимом некоторого элемента перечисления.
annotation class CEnumEntryAlias
CEnumVarTypeSize
Хранит размер экземпляра типа T: CEnumVar.
annotation class CEnumVarTypeSize
CName
Делает доступной функцию верхнего уровня из кода C/C++ с данным именем.
annotation class CName
ContextFunctionTypeParams
annotation class ContextFunctionTypeParams
CStruct
annotation class CStruct
Deprecated
Помечает аннотированное объявление как устаревшее.
annotation class Deprecated
DeprecatedSinceKotlin
Помечает аннотированное объявление как устаревшее. В отличие от Deprecated, серьезность сообщаемого диагностического сообщения не является постоянным значением, но зависит от версии API использования (значение аргумента -api-version при компиляции модуля, где расположено использование). Если версия API больше или равна hiddenSince, объявление не будет доступно из кода (как если бы оно было устаревшим с уровнем DeprecationLevel.HIDDEN), иначе, если версия API больше или равна errorSince, использование будет помечено как ошибка (как с DeprecationLevel.ERROR), иначе, если версия API больше или равна warningSince, использование будет помечено как предупреждение (как с DeprecationLevel.WARNING), в противном случае аннотация игнорируется.
annotation class DeprecatedSinceKotlin
DslMarker
При применении к классу аннотаций X указывает, что X определяет язык DSL.
annotation class DslMarker
EagerInitialization
Вынуждает свойство верхнего уровня инициализироваться немедленно, в отличие от отложенной инициализации при первом доступе к файлу и/или свойству.
annotation class EagerInitialization
EagerInitialization
Вынуждает свойство верхнего уровня инициализироваться немедленно, в отличие от отложенной инициализации при первом доступе к файлу и/или свойству. Эта аннотация может использоваться как временная помощь при миграции во время перехода от предыдущей схемы инициализации Kotlin/Native «немедленная по умолчанию» к новой «отложенная по умолчанию».
annotation class EagerInitialization
Experimental
Указывает, что аннотированный класс аннотаций является маркером экспериментального API.
annotation class Experimental
ExperimentalAssociatedObjects
Экспериментальный маркер для API связанных объектов.
annotation class ExperimentalAssociatedObjects
ExperimentalContracts
Этот маркер отличает экспериментальный API объявления контрактов и используется для включения этой функции при объявлении контрактов пользовательских функций.
annotation class ExperimentalContracts
ExperimentalJsExport
Помечает экспериментальные аннотации экспорта JS.
annotation class ExperimentalJsExport
ExperimentalMultiplatform
Экспериментальный маркер API поддержки многоплатформенности.
annotation class ExperimentalMultiplatform
ExperimentalPathApi
Эта аннотация отмечает расширения и функции верхнего уровня для работы с java.nio.file.Path как экспериментальные.
annotation class ExperimentalPathApi
ExperimentalReflectionOnLambdas
Эта аннотация помечает экспериментальный API kotlin-reflect, который позволяет аппроксимировать экземпляр лямбда-выражения Kotlin или функционального выражения к экземпляру KFunction. Поведение этого API может быть изменено, или API может быть полностью удален в любом последующем релизе.
annotation class ExperimentalReflectionOnLambdas
ExperimentalStdlibApi
Эта аннотация помечает API стандартной библиотеки, который считается экспериментальным и не подлежит общей гарантии совместимости, данной для стандартной библиотеки: поведение такого API может быть изменено, или API может быть полностью удален в любом последующем релизе.
annotation class ExperimentalStdlibApi
ExperimentalTime
Эта аннотация помечает экспериментальный предварительный просмотр API стандартной библиотеки для измерения времени и работы с интервалами.
annotation class ExperimentalTime
ExperimentalTypeInference
Экспериментальный маркер для аннотаций, расширяющих вывод типов.
annotation class ExperimentalTypeInference
ExperimentalUnsignedTypes
Помечает API, который зависит от экспериментальных беззнаковых типов, включая сами эти типы.
annotation class ExperimentalUnsignedTypes
ExportObjCClass
Делает подкласс Kotlin класса Objective-C видимым для поиска во время выполнения после того, как вызовется функция main.
annotation class ExportObjCClass
ExtensionFunctionType
Указывает, что аннотированный функциональный тип представляет расширяющую функцию.
annotation class ExtensionFunctionType
ExternalObjCClass
annotation class ExternalObjCClass
FreezingIsDeprecated
API Freezing устарел начиная с версии 1.7.20.
annotation class FreezingIsDeprecated
InteropStubs
annotation class InteropStubs
IntrinsicConstEvaluation
При применении к функции или свойству, включает оптимизацию компилятора, которая вычисляет эту функцию или свойство во время компиляции и заменяет вызовы на неё вычисленным результатом.
annotation class IntrinsicConstEvaluation
JsExport
Экспортирует объявление верхнего уровня на платформе JS.
annotation class JsExport
JsModule
Обозначает external объявление, которое должно быть импортировано из нативной JavaScript библиотеки.
annotation class JsModule
JsName
Присваивает объявлению (функции, свойству или классу) определённое имя в JavaScript.
annotation class JsName
JsNonModule
Обозначает external объявление, которое может использоваться без системы модулей.
annotation class JsNonModule
JsQualifier
Добавляет префикс к external объявлениям в исходном файле.
annotation class JsQualifier
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
JvmStatic
Указывает, что дополнительный статический метод должен быть сгенерирован из этого элемента, если это функция. Если этот элемент является свойством, должны быть сгенерированы дополнительные статические методы getter/setter.
annotation class JvmStatic
JvmSuppressWildcards
Инструктирует компилятор генерировать или опускать дикие карты для типов аргументов, соответствующих параметрам с вариативностью объявления, например, таких как Collection<out T>.
annotation class JvmSuppressWildcards
JvmSynthetic
Устанавливает ACC_SYNTHETIC флаг на отмеченную цель в Java-байткоде.
annotation class JvmSynthetic
JvmWildcard
Инструктирует компилятор генерировать дикие карты для типов аргументов, соответствующих параметрам с вариативностью объявления.
annotation class JvmWildcard
Metadata
Эта аннотация присутствует в любом файле класса, созданном компилятором Kotlin, и считывается компилятором и рефлексией. У параметров намеренно очень короткие имена JVM: эти имена появляются во всех сгенерированных файлах классов, и мы хотим уменьшить их размер.
annotation class Metadata
MustBeDocumented
Эта мета-аннотация определяет, что аннотация является частью публичного API и, следовательно, должна быть включена в сгенерированную документацию для элемента, к которому применяется аннотация.
annotation class MustBeDocumented
nativeGetter
annotation class nativeGetter
nativeInvoke
annotation class nativeInvoke
nativeSetter
annotation class nativeSetter
ObjCAction
Делает доступной Kotlin-метод в Objective-C-классе через Objective-C-диспетчеризацию для использования в качестве действия, отправляемого элементом управления в UIKit или AppKit.
annotation class ObjCAction
ObjCConstructor
annotation class ObjCConstructor
ObjCFactory
annotation class ObjCFactory
ObjCMethod
annotation class ObjCMethod
ObjCOutlet
Делает Kotlin-свойство в Objective-C-классе устанавливаемым через Objective-C-диспетчеризацию для использования в качестве IB-выхода.
annotation class ObjCOutlet
OptIn
Разрешает использование API, обозначенного заданными маркерами в аннотируемом файле, объявлении или выражении. Если объявление аннотировано OptIn, его использование не требуется для подключения к этому API.
annotation class OptIn
OptionalExpectation
Помечает ожидаемый класс аннотаций, что нет необходимости иметь фактические аналоги на всех платформах.
annotation class OptionalExpectation
OverloadResolutionByLambdaReturnType
Включает выбор перегрузки на основе типа значения, возвращаемого аргументом лямбды.
annotation class OverloadResolutionByLambdaReturnType
ParameterName
Аннотирует аргументы типа функционального типа и содержит соответствующее имя параметра, указанное пользователем в объявлении типа (если таковое имеется).
annotation class ParameterName
PublishedApi
При применении к классу или члену с внутренней видимостью позволяет использовать его из публичных встроенных функций и делает его эффективным публичным.
annotation class PublishedApi
PurelyImplements
Инструктирует компилятор Kotlin рассматривать аннотированный Java-класс как чистое реализацию данного Kotlin-интерфейса. "Чисто" означает здесь, что каждый параметр типа класса становится неплатформенным аргументом типа этого интерфейса.
annotation class PurelyImplements
Repeatable
Эта мета-аннотация определяет, что аннотация может применяться дважды или более к одному элементу кода.
annotation class Repeatable
ReplaceWith
Указывает фрагмент кода, который может быть использован для замены устаревшей функции, свойства или класса. Инструменты, такие как IDE, могут автоматически применять замены, указанные с помощью этой аннотации.
annotation class ReplaceWith
RequiresOptIn
Указывает, что аннотированный класс аннотации является маркером API, который требует явного opt-in.
annotation class RequiresOptIn
RestrictsSuspension
Классы и интерфейсы, помеченные этой аннотацией, ограничены при использовании в качестве получателей для расширяющих suspend функций. Эти suspend расширения могут вызывать только другие члены или расширяющие suspend функции для этого конкретного получателя и ограничены от вызова произвольных функций приостановки.
annotation class RestrictsSuspension
Retain
Сохраняет точку входа функции во время глобальных оптимизаций.
annotation class Retain
RetainForTarget
Сохраняет точку входа функции во время глобальных оптимизаций, только для данного целевого объекта.
annotation class RetainForTarget
Retention
Эта мета-аннотация определяет, хранится ли аннотация в двоичном выводе и видна ли для рефлексии. По умолчанию оба значения равны true.
annotation class Retention
SharedImmutable
Примечание: эта аннотация имеет эффект только в Kotlin/Native с устаревшим менеджером памяти.
annotation class SharedImmutable
SinceKotlin
Указывает первую версию Kotlin, где объявление появилось. Использование объявления и указание более старой версии API (через параметр -api-version командной строки) приведет к ошибке.
annotation class SinceKotlin
Strictfp
Помечает метод JVM, сгенерированный из аннотированной функции, как strictfp, что означает, что точность операций с плавающей точкой, выполняемых внутри метода, должна быть ограничена для достижения лучшей переносимости.
annotation class Strictfp
Suppress
Отключает указанные предупреждения компиляции в аннотированном элементе.
annotation class Suppress
SymbolName
Это опасная устаревшая и внутренняя аннотация. Пожалуйста, избегайте её использования.
annotation class SymbolName
Synchronized
Помечает метод JVM, сгенерированный из аннотированной функции, как synchronized, что означает, что метод будет защищен от одновременного выполнения несколькими потоками монитором экземпляра (или, для статических методов, класса), в котором определен метод.
annotation class Synchronized
Target
Эта мета-аннотация указывает виды элементов кода, которые являются возможными целями аннотации.
annotation class Target
ThreadLocal
Помечает свойство верхнего уровня с вспомогательным полем или объект как локальный для потока. Объект остается изменяемым, и его состояние можно изменить, но каждый поток будет иметь отдельную копию этого объекта, поэтому изменения в одном потоке не отражаются в другом.
annotation class ThreadLocal
Throws
Эта аннотация указывает, какие исключения должны быть объявлены функцией при компиляции в метод платформы в Kotlin/JVM и Kotlin/Native.
annotation class Throws
typealias Throws = Throws
Throws
Эта аннотация указывает, какие исключения должны быть объявлены функцией при компиляции в метод JVM.
annotation class Throws
Transient
Помечает поле JVM-поддержки аннотированного свойства как transient, что означает, что оно не является частью стандартной сериализованной формы объекта.
annotation class Transient
UnsafeNumber
Маркер для объявлений, которые зависят от числовых типов разной разрядности как минимум на двух платформах.
annotation class UnsafeNumber
UnsafeVariance
Подавляет ошибки, связанные с конфликтом вариативности
annotation class UnsafeVariance
UseExperimental
Разрешает использование экспериментального API, обозначенного заданными маркерами в аннотированном файле, объявлении или выражении. Если объявление аннотировано с помощью UseExperimental, его использование не требует включения этого экспериментального API.
annotation class UseExperimental
Volatile
Помечает поле JVM-поддержки аннотированного свойства как volatile, что означает, что записи в это поле немедленно становятся видимыми для других потоков.
annotation class Volatile
© 2010–2022 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/-annotation.html