<init>
SubclassOptInRequired(markerClass: KClass<out Annotation>)
Аннотация, которая помечает открытые для наследования классы и интерфейсы и делает реализацию и расширение таких объявлений требующим явного opt-in.
При применении любая попытка наследования целевого объявления вызовет opt-in с соответствующим уровнем и сообщением.
Предполагаемые варианты использования маркеров opt-in для наследования включают, но не ограничиваются следующими 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