Spec-Zone.ru › Kotlin 2

JvmExposeBoxed

kotlin-stdlib/kotlin.jvm/JvmExposeBoxed

Требования к платформе и версии: Common (2.2)

@ExperimentalStdlibApi
@Target(allowedTargets = [AnnotationTarget.FUNCTION, AnnotationTarget.CONSTRUCTOR, AnnotationTarget.PROPERTY_GETTER, AnnotationTarget.PROPERTY_SETTER, AnnotationTarget.CLASS])
expect annotation class JvmExposeBoxed(val jvmName: String = "")

Эта аннотация указывает компилятору предоставлять API функций с inline-классами (а также классов, содержащих их, включая сами inline-классы) в boxed-варианте для эффективного использования из Java.

Она выполняет следующие преобразования:

  • Для аннотированных функций и конструкторов, принимающих или возвращающих inline-классы, создаётся wrapper-функция без изменения имени, в которой inline-классы представлены в boxed-виде. Таким образом, wrapper-функция видна и доступна для вызова из Java.

  • Если класс аннотирован, аннотация неявно распространяется на его методы, заставляя компилятор генерировать для них wrapper-функции.

  • Конструктор становится доступен из Java.

Эти изменения обеспечивают обратную совместимость, позволяя безопасно помечать существующий API.

Требования к платформе и версии: JVM (2.2)

@ExperimentalStdlibApi
@Target(allowedTargets = [AnnotationTarget.FUNCTION, AnnotationTarget.CONSTRUCTOR, AnnotationTarget.PROPERTY_GETTER, AnnotationTarget.PROPERTY_SETTER, AnnotationTarget.CLASS])
actual annotation class JvmExposeBoxed(val jvmName: String)

Эта аннотация указывает компилятору предоставлять API функций с inline-классами (а также классов, содержащих их, включая сами inline-классы) в boxed-варианте для эффективного использования из Java.

Она выполняет следующие преобразования:

  • Для аннотированных функций и конструкторов, принимающих или возвращающих inline-классы, создаётся wrapper-функция без изменения имени, в которой inline-классы представлены в boxed-виде. Таким образом, wrapper-функция видна и доступна для вызова из Java.

  • Если класс аннотирован, аннотация неявно распространяется на его методы, заставляя компилятор генерировать для них wrapper-функции.

  • Конструктор становится доступен из Java.

Эти изменения обеспечивают обратную совместимость, позволяя безопасно помечать существующий API.

Свойства

jvmName

Начиная с Kotlin: 2.2

expect val jvmName: String

необязательное имя wrapper-функции. Применимо только к функциям, геттерам и сеттерам.

© 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.jvm/-jvm-expose-boxed/

Spec-Zone.ru

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