Spec-Zone.ru › Kotlin 2

Deprecated

kotlin-stdlib/kotlin/Deprecated

Версия Kotlin: 1.0

@Target(allowedTargets = [AnnotationTarget.CLASS, AnnotationTarget.FUNCTION, AnnotationTarget.PROPERTY, AnnotationTarget.ANNOTATION_CLASS, AnnotationTarget.CONSTRUCTOR, AnnotationTarget.PROPERTY_SETTER, AnnotationTarget.PROPERTY_GETTER, AnnotationTarget.TYPEALIAS])
annotation class Deprecated(val message: String, val replaceWith: ReplaceWith = ReplaceWith(""), val level: DeprecationLevel = DeprecationLevel.WARNING)

Помечает объявление аннотацией как устаревшее.

Использование устаревшего элемента API не рекомендуется, как правило, потому что от него постепенно отказываются или существует более подходящая альтернатива.

Чтобы помочь постепенно отказаться от устаревшего API, можно использовать свойство level. Обычно отказ от API проходит через этапы «предупреждение», затем «ошибка», а после — «скрытие» или «удаление»:

  • Сначала, по умолчанию, используется DeprecationLevel.WARNING, чтобы уведомить пользователей API, не нарушая при этом компиляцию или выполнение кода.

  • Затем, спустя некоторое время, уровень устаревания повышается до DeprecationLevel.ERROR, чтобы новый код на Kotlin больше нельзя было скомпилировать с использованием устаревшего API.

  • Наконец, API либо полностью удаляется, либо скрывается (DeprecationLevel.HIDDEN) из кода, так что его использование выглядит как обращение к неразрешённой ссылке, тогда как сам API остаётся в скомпилированном коде, сохраняя бинарную совместимость с ранее скомпилированным кодом.

Свойства

level

Версия Kotlin: 1.0

val level: DeprecationLevel

Определяет, как в коде сообщается об использовании устаревшего элемента. Возможные значения см. в перечислении DeprecationLevel.

message

Версия Kotlin: 1.0

val message: String

Сообщение с объяснением причины устаревания и рекомендацией альтернативного API.

replaceWith

Версия Kotlin: 1.0

val replaceWith: ReplaceWith

Если указано, задаёт фрагмент кода, который следует использовать вместо обращения к устаревшему API.

© 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/-deprecated/

Spec-Zone.ru

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