Аннотация
interface Annotation
Базовый интерфейс, неявно реализованный всеми интерфейсами аннотаций. Подробнее об аннотациях см. в документации языка Kotlin.
Расширяемые свойства
annotationClass
Возвращает экземпляр KClass, соответствующий типу аннотации этой аннотации.
val <T : Annotation> T.annotationClass: KClass<out T>
Наследники
AssociatedObjectKey
Делает аннотированный класс аннотаций ключом связанного объекта.
annotation class AssociatedObjectKey
BetaInteropApi
Помечает API межплатформенной совместимости Objective-C и Swift как бета-версию.
annotation class BetaInteropApi
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
Указывает, что аннотированный функциональный тип имеет префикс размера count для получателей контекста. Таким образом, @ContextFunctionTypeParams(2) @ExtensionFunctionType Function4<String, Int, Double, Byte, Unit> является нормализованным представлением context(String, Int) Double.(Byte) -> Unit.
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
ExperimentalAssociatedObjects
Экспериментальная метка для API связанных объектов.
annotation class ExperimentalAssociatedObjects
ExperimentalContracts
Эта метка отличает экспериментальный API деклараций контрактов и используется для включения этой функции при объявлении контрактов пользовательских функций.
annotation class ExperimentalContracts
ExperimentalEncodingApi
Эта аннотация отмечает экспериментальный API кодирования и декодирования между двоичными данными и наборами печатных символов ASCII.
annotation class ExperimentalEncodingApi
ExperimentalForeignApi
Помечает API, связанный с внешней памятью, как экспериментальный.
annotation class ExperimentalForeignApi
ExperimentalJsExport
Помечает аннотации экспериментального экспорта JS.
annotation class ExperimentalJsExport
ExperimentalMultiplatform
Маркер API экспериментальной поддержки кроссплатформенности.
annotation class ExperimentalMultiplatform
ExperimentalNativeApi
Эта аннотация помечает API стандартной библиотеки, доступный только для Kotlin/Native, который считается экспериментальным и не подлежит общим гарантиям совместимости, предоставляемым для стандартной библиотеки: поведение такого API может быть изменено, или API может быть полностью удалено в любом последующем релизе.
annotation class ExperimentalNativeApi
ExperimentalObjCName
Эта аннотация помечает экспериментальную аннотацию ObjCName.
annotation class ExperimentalObjCName
ExperimentalObjCRefinement
Эта аннотация помечает экспериментальные аннотации уточнения экспорта Objective-C.
annotation class ExperimentalObjCRefinement
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
ExperimentalSubclassOptIn
Эта аннотация помечает экспериментальный предварительный просмотр языковой функции SubclassOptInRequired.
annotation class ExperimentalSubclassOptIn
ExperimentalTime
Эта аннотация помечает экспериментальный предварительный просмотр API стандартной библиотеки для измерения времени и работы с длительностями.
annotation class ExperimentalTime
ExperimentalTypeInference
Экспериментальный маркер для аннотаций, расширяющих вывод типов.
annotation class ExperimentalTypeInference
ExperimentalUnsignedTypes
Помечает API, который зависит от экспериментальных беззнаковых типов, включая сами эти типы.
annotation class ExperimentalUnsignedTypes
ExportObjCClass
Делает подкласс Kotlin класса Objective-C видимым для поиска во время выполнения после того, как вызывается функция Kotlin main.
annotation class ExportObjCClass
ExtensionFunctionType
Указывает, что аннотированный функциональный тип представляет собой функцию-расширение.
annotation class ExtensionFunctionType
ExternalObjCClass
annotation class ExternalObjCClass
FreezingIsDeprecated
API Freezing устарел начиная с версии 1.7.20.
annotation class FreezingIsDeprecated
HiddenFromObjC
Инструктирует компилятор Kotlin удалить этот класс, функцию или свойство из публичного API Objective-C.
annotation class HiddenFromObjC
HidesFromObjC
Мета-аннотация, которая инструктирует компилятор Kotlin удалить аннотированный класс, функцию или свойство из публичного API Objective-C.
annotation class HidesFromObjC
Ignore
annotation class Ignore
InteropStubs
annotation class InteropStubs
JsExport
Экспортирует объявление верхнего уровня на платформе JS.
annotation class JsExport
JsExternalArgument
При размещении на параметре функции требует, чтобы тип переданного аргумента был внешним.
annotation class JsExternalArgument
JsExternalInheritorsOnly
При размещении на внешнем интерфейсе или классе требует, чтобы все его дочерние интерфейсы, классы и объекты также были внешними.
annotation class JsExternalInheritorsOnly
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
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
Metadata
Эта аннотация присутствует в любом файле класса, созданном компилятором Kotlin, и считывается компилятором и рефлексией. Параметры имеют очень короткие имена JVM специально: эти имена появляются во всех генерируемых файлах классов, и мы хотели бы уменьшить их размер.
annotation class Metadata
MustBeDocumented
Эта мета-аннотация определяет, что аннотация является частью публичного API и, следовательно, должна быть включена в сгенерированную документацию для элемента, к которому применена аннотация.
annotation class MustBeDocumented
nativeGetter
annotation class nativeGetter
nativeInvoke
annotation class nativeInvoke
NativeRuntimeApi
Эта аннотация отмечает API стандартной библиотеки Kotlin/Native, которая настраивает или иным образом обращается к поведению среды выполнения Kotlin.
annotation class NativeRuntimeApi
nativeSetter
annotation class nativeSetter
ObjCAction
Делает доступным метод Kotlin в классе Objective-C через диспетчер Objective-C для использования в качестве действия, отправляемого элементом управления в UIKit или AppKit.
annotation class ObjCAction
ObjCConstructor
annotation class ObjCConstructor
ObjCDirect
annotation class ObjCDirect
ObjCFactory
annotation class ObjCFactory
ObjCMethod
annotation class ObjCMethod
ObjCName
Инструктирует компилятор Kotlin использовать пользовательское имя Objective-C и/или Swift для этого класса, свойства, параметра или функции.
annotation class ObjCName
ObjCOutlet
Делает свойство Kotlin в Objective-C классе устанавливаемым через диспетчер Objective-C для использования в качестве IB outlet.
annotation class ObjCOutlet
ObsoleteNativeApi
Эта аннотация отмечает API стандартной библиотеки Kotlin/Native, которая считается устаревшей и постепенно отключается.
annotation class ObsoleteNativeApi
ObsoleteWorkersApi
Отмечает все API, относящиеся к Worker, как устаревшие.
annotation class ObsoleteWorkersApi
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
RefinesInSwift
Мета-аннотация, которая инструктирует компилятор Kotlin отмечать аннотированную функцию или свойство как swift_private в сгенерированном API Objective-C.
annotation class RefinesInSwift
Repeatable
Эта мета-аннотация определяет, что аннотация может быть применена дважды или более к одному элементу кода.
annotation class Repeatable
ReplaceWith
Указывает фрагмент кода, который может быть использован для замены устаревшей функции, свойства или класса. Такие инструменты, как IDE, могут автоматически применять замены, указанные с помощью этой аннотации.
annotation class ReplaceWith
RequiresOptIn
Сигнализирует о том, что аннотированный класс аннотаций является маркером API, который требует явного включения.
annotation class RequiresOptIn
RestrictsSuspension
Классы и интерфейсы, помеченные этой аннотацией, ограничены при использовании в качестве получателей для расширения suspend функций. Эти suspend расширения могут вызывать только другие функции-члены или расширения suspend для этого конкретного получателя и ограничены вызовом произвольных функций приостановки.
annotation class RestrictsSuspension
Retain
Сохраняет точку входа функции во время глобальной оптимизации.
annotation class Retain
RetainForTarget
Сохраняет точку входа функции во время глобальной оптимизации, только для указанной цели.
annotation class RetainForTarget
Retention
Эта мета-аннотация определяет, сохраняется ли аннотация в двоичном выводе и видна ли она для отражения. По умолчанию, оба значения истинны.
annotation class Retention
SharedImmutable
Примечание: эта аннотация работает только в Kotlin/Native с устаревшим менеджером памяти.
annotation class SharedImmutable
ShouldRefineInSwift
Инструктирует компилятор Kotlin пометить эту функцию или свойство как swift_private в сгенерированном API Objective-C.
annotation class ShouldRefineInSwift
SinceKotlin
Указывает первую версию Kotlin, в которой появилось объявление. Использование объявления и указание более старой версии API (с помощью параметра командной строки -api-version) приведет к ошибке.
annotation class SinceKotlin
Strictfp
Помечает метод JVM, сгенерированный из аннотированной функции, как strictfp, что означает, что точность операций с плавающей запятой, выполняемых внутри метода, должна быть ограничена для достижения лучшей переносимости.
annotation class Strictfp
SubclassOptInRequired
Аннотация, которая помечает открытые для наследования классы и интерфейсы, и делает реализацию и расширение таких объявлений требующими явного включения.
annotation class SubclassOptInRequired
Suppress
Подавляет указанные предупреждения компиляции в аннотированном элементе.
annotation class Suppress
SymbolName
Это опасная устаревшая и внутренняя аннотация. Пожалуйста, избегайте её использования.
annotation class SymbolName
Synchronized
Помечает метод JVM, сгенерированный из аннотированной функции, как synchronized, что означает, что метод будет защищен от одновременного выполнения несколькими потоками монитором экземпляра (или, для статических методов, класса), на котором определен метод.
annotation class 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
Volatile
Помечает поле JVM, которое хранит var свойство, как volatile, что означает, что чтение и запись в это поле атомарны, а записи всегда видны другим потокам. Если другой поток считывает значение этого поля (например, через его аксессор), он видит не только это значение, но и все побочные эффекты, которые привели к записи этого значения.
annotation class Volatile
annotation class Volatile
Volatile
Помечает поле, которое хранит значение var свойства, как volatile, что означает, что чтение и запись в это поле атомарны, а записи всегда видны другим потокам. Если другой поток считывает значение этого поля (например, через его аксессор), он видит не только это значение, но и все побочные эффекты, которые привели к записи этого значения.
annotation class Volatile
typealias Volatile = Volatile
© 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/-annotation.html