<init>
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