Аннотация
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
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
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
JvmMultifileClass
Инструктирует компилятор Kotlin генерировать многофайловый класс с функциями и свойствами верхнего уровня, объявленными в этом файле, как одну из его частей. Имя соответствующего многофайлового класса предоставляется аннотацией JvmName.
annotation class JvmMultifileClass
JvmName
Указывает имя для Java-класса или метода, который генерируется из этого элемента.
annotation class JvmName
JvmOverloads
Инструктирует компилятор Kotlin генерировать перегрузки для этой функции, которые заменяют значения параметров по умолчанию.
annotation class JvmOverloads
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
Эта мета-аннотация определяет, сохраняется ли аннотация в двоичном выводе и видна ли для рефлексии. По умолчанию оба значения истинны.
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
Принуждает компилятор использовать указанное имя символа для целевой external функции.
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
UnsafeVariance
Подавляет ошибки по поводу конфликта вариативности
annotation class UnsafeVariance
UseExperimental
Разрешает использовать экспериментальный API, обозначенный указанными метками в аннотированном файле, объявлении или выражении. Если объявление аннотировано с UseExperimental, его использования не требуется, чтобы подключаться к этому экспериментальному API.
annotation class UseExperimental
Volatile
Помечает JVM-поддерживающее поле аннотированного свойства как volatile, что означает, что записи в это поле немедленно становятся видимыми другим потокам.
annotation class Volatile
© 2010–2020 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