Spec-Zone.ru › Kotlin 1.8

<init>

kotlin-stdlib / kotlin / SubclassOptInRequired / <init>
Требования к платформе и версии: JVM (1.0), JS (1.0), Native (1.0)
SubclassOptInRequired(markerClass: KClass<out Annotation>)

Аннотация, которая отмечает классы и интерфейсы, открытые для наследования, и делает реализацию и расширение таких деклараций требующими явного согласия.

При применении любая попытка наследования целевой декларации вызовет необходимость согласия с соответствующим уровнем и сообщением.

Предполагаемое использование маркеров согласия для наследования включает, но не ограничивается следующим API:

  • Стабилен в использовании, но нестабилен в реализации из-за дальнейшего развития.
  • Стабилен в использовании, но закрыт для реализации третьими сторонами по внутренним или техническим причинам.
  • Стабилен в использовании, но сложен или хрупок в реализации.
  • Стабилен в использовании, но с контрактом, который может быть ослаблен в будущем несовместимым образом для внешних реализаций.

В отличие от обычного RequiresOptIn, существует три способа согласия на требование наследования:

  • Отметить декларацию маркером аннотации, сделав ее распространяющейся.
  • Отметить декларацию аннотацией OptIn, чтобы получить согласие на предоставленные гарантии нераспространяющимся образом.
  • Отметить декларацию аннотацией SubclassOptInRequired с тем же классом маркера, сделав её далее распространяющейся только для наследования.

Использование этой аннотации ограничено открытыми и абстрактными классами и не-fun интерфейсами. Любое другое использование, разрешенное CLASS целевым объектом аннотации, приводит к ошибке компиляции.

© 2010–2023 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/-subclass-opt-in-required/-init-.html

Spec-Zone.ru

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