Метаданные
@Target([AnnotationTarget.CLASS]) annotation class Metadata
Эта аннотация присутствует в любом файле класса, сгенерированном компилятором Kotlin, и считывается компилятором и рефлексией. Параметры имеют очень короткие имена JVM намеренно: эти имена появляются во всех сгенерированных файлах класса, и мы хотим уменьшить их размер.
Конструкторы
<init>
Эта аннотация присутствует в любом файле класса, сгенерированном компилятором Kotlin, и считывается компилятором и рефлексией. Параметры имеют очень короткие имена JVM намеренно: эти имена появляются во всех сгенерированных файлах класса, и мы хотим уменьшить их размер.
Metadata( kind: Int = 1, metadataVersion: IntArray = [], bytecodeVersion: IntArray = [1, 0, 3], data1: Array<String> = [], data2: Array<String> = [], extraString: String = "", packageName: String = "", extraInt: Int = 0)
Свойства
bytecodeVersion
Версия интерфейса байткода (именные соглашения, сигнатуры) файла класса, помеченного этой аннотацией.
val bytecodeVersion: IntArray
data1
Метаданные в пользовательском формате. Формат может быть другим (или даже отсутствовать) для разных видов.
val data1: Array<String>
data2
Дополнение к data1: массив строк, которые встречаются в метаданных, записанных в простом текстовом формате, чтобы повторно использовать уже имеющиеся в пуле констант строки. Эти строки могут затем индексироваться в метаданных целочисленным индексом в этом массиве.
val data2: Array<String>
extraInt
Дополнительный int. Бита этого числа представляют следующие флаги:
val extraInt: Int
extraString
Дополнительная строка. Для класса с несколькими файлами, внутреннее имя класса-фасада.
val extraString: String
kind
Вид метаданных, которые кодирует эта аннотация. Компилятор Kotlin распознает следующие виды (см. KotlinClassHeader.Kind):
val kind: Int
metadataVersion
Версия метаданных, предоставленная в аргументах этой аннотации.
val metadataVersion: IntArray
packageName
Полное квалифицированное имя пакета, в котором находится этот класс, с точки зрения Kotlin, или пустая строка, если это имя не отличается от полного квалифицированного имени пакета JVM. Эти имена могут отличаться в случае использования аннотации JvmPackageName. Обратите внимание, что эта информация также хранится в соответствующем файле модуля .kotlin_module.
val packageName: String
Расширяемые свойства
annotationClass
Возвращает экземпляр KClass, соответствующий типу аннотации этой аннотации.
val <T : Annotation> T.annotationClass: KClass<out T>
© 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/-metadata/index.html