Аннотация
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
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
Принудительно инициализирует свойство верхнего уровня немедленно, в отличие от ленивой инициализации при первом обращении к файлу и/или свойству. Эта аннотация может быть использована как временная помощь при миграции во время перехода от предыдущей схемы инициализации Kotlin/Native «немедленная по умолчанию» к новой «ленивая по умолчанию».
annotation class EagerInitialization
Experimental
Указывает, что аннотированный класс аннотаций является маркером экспериментального API.
annotation class Experimental
ExperimentalAssociatedObjects
Экспериментальный маркер API связанных объектов.
annotation class ExperimentalAssociatedObjects
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 видимым для поиска во время выполнения после вызова функции Kotlin main.
annotation class ExportObjCClass
ExtensionFunctionType
Указывает, что аннотированный функциональный тип представляет собой расширяющую функцию.
annotation class ExtensionFunctionType
ExternalObjCClass
annotation class ExternalObjCClass
InteropStubs
annotation class InteropStubs
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
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
Указывает, что из этого элемента необходимо сгенерировать дополнительный статический метод, если это функция. Если этот элемент является свойством, следует сгенерировать дополнительные статические методы доступа/изменения.
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, который требует явного включения.
annotation class RequiresOptIn
RestrictsSuspension
Классы и интерфейсы, помеченные этой аннотацией, ограничены при использовании в качестве получателей для расширяющих suspend функций. Эти suspend расширения могут вызывать только другие члены или расширяющие suspend функции для этого конкретного получателя и ограничены от вызова произвольных функций приостановки.
annotation class RestrictsSuspension
Retain
Сохранение точки входа функции во время глобальных оптимизаций.
annotation class Retain
RetainForTarget
Сохранение точки входа функции во время глобальных оптимизаций только для указанного целевого объекта.
annotation class RetainForTarget
Retention
Эта мета-аннотация определяет, хранится ли аннотация в двоичном выводе и видна для рефлексии. По умолчанию оба значения равны true.
annotation class Retention
SharedImmutable
Помечает свойство верхнего уровня с поддерживающим полем как неизменяемое. Значение такого свойства можно совместно использовать между несколькими потоками, но оно становится глубоко замороженным, поэтому к его состоянию или состоянию объектов, на которые оно ссылается, нельзя внести изменения.
annotation class SharedImmutable
SinceKotlin
Указывает первую версию Kotlin, в которой появилось объявление. Использование объявления и указание более старой версии API (через -api-version опцию командной строки) приведет к ошибке.
annotation class SinceKotlin
Strictfp
Помечает генерируемый JVM метод из аннотированной функции как strictfp, что означает, что точность операций с плавающей точкой, выполняемых внутри метода, должна быть ограничена для достижения лучшей переносимости.
annotation class Strictfp
Suppress
Отключает указанные предупреждения компиляции в аннотированном элементе.
annotation class Suppress
SymbolName
Эта аннотация устарела. См. KT-46649.
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
Маркер для typealias, который будет представлять числа различной разрядности по крайней мере на двух платформах.
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