Spec-Zone.ru › Kotlin 2

Metadata

kotlin-stdlib/kotlin/Metadata

Версия Kotlin: 1.3

@Target(allowedTargets = [AnnotationTarget.CLASS])
annotation class Metadata(val kind: Int = 1, val metadataVersion: IntArray = [], val bytecodeVersion: IntArray = [1, 0, 3], val data1: Array<String> = [], val data2: Array<String> = [], val extraString: String = "", val packageName: String = "", val extraInt: Int = 0)

Эта аннотация присутствует в каждом файле класса, созданном компилятором Kotlin, и считывается компилятором и механизмом рефлексии. Параметры намеренно имеют очень короткие имена в JVM: эти имена присутствуют во всех сгенерированных файлах классов, и мы хотим уменьшить их размер.

Свойства

bytecodeVersion

Версия Kotlin: 1.3

@get:JvmName(name = "bv")
val bytecodeVersion: IntArray

Версия интерфейса байт-кода (соглашения об именовании, сигнатуры) файла класса, помеченного этой аннотацией.

data1

Версия Kotlin: 1.3

@get:JvmName(name = "d1")
val data1: Array<String>

Метаданные в пользовательском формате. Формат может различаться (или даже отсутствовать) для разных видов.

data2

Версия Kotlin: 1.3

@get:JvmName(name = "d2")
val data2: Array<String>

Дополнение к data1: массив строк, встречающихся в метаданных и записанных в обычном текстовом виде, чтобы повторно использовать строки, уже присутствующие в пуле констант. Затем на эти строки можно ссылаться в метаданных по целочисленному индексу в этом массиве.

extraInt

Версия Kotlin: 1.3

@get:JvmName(name = "xi")
val extraInt: Int = 0

Дополнительное целое число. Биты этого числа представляют следующие флаги:

extraString

Версия Kotlin: 1.3

@get:JvmName(name = "xs")
val extraString: String

Дополнительная строка. Для класса части многофайловой декларации — внутреннее имя класса-фасада.

kind

Версия Kotlin: 1.3

@get:JvmName(name = "k")
val kind: Int = 1

Вид метаданных, кодируемых этой аннотацией. Компилятор Kotlin распознаёт следующие виды:

metadataVersion

Версия Kotlin: 1.3

@get:JvmName(name = "mv")
val metadataVersion: IntArray

Версия метаданных, указанная в аргументах этой аннотации.

packageName

Версия Kotlin: 1.3

@get:JvmName(name = "pn")
val packageName: String

Полное имя пакета, в котором с точки зрения Kotlin находится этот класс, или пустая строка, если это имя не отличается от полного имени пакета JVM. Эти имена могут различаться, если используется аннотация JvmPackageName. Обратите внимание, что эта информация также хранится в соответствующем файле модуля .kotlin_module.

© 2010–2026 JetBrains s.r.o. and Kotlin Programming Language contributors
Licensed under the Apache License, Version 2.0.
https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-metadata/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API