Введение в аннотации в Kotlin
Аннотация - короткая пометка рядом с объявлением. Она не выполняется как обычный код: компилятор читает метку и может изменить диагностику, проверку типов или правила доступа к элементу.
Запись начинается с символа @ и имени пометки.
Ее ставят перед функцией, классом, свойством или
другим объявлением, к которому относится смысл метки.
В стандартной библиотеке есть @Deprecated - она
сообщает, что объявление лучше не использовать. На
старую функцию форматирования подписи можно повесить
такую пометку с коротким текстом:
@Deprecated("prefer trimTitle for new code")
fun legacyCaption(raw: String): String {
return raw.trim()
}
fun trimTitle(raw: String): String = raw.trim()
Если в программе остаётся вызов устаревшей функции, компилятор не обязательно останавливает сборку - часто достаточно предупреждения в отчёте. Проверить это можно на простом входе в программу:
@Deprecated("prefer trimTitle for new code")
fun legacyCaption(raw: String): String {
return raw.trim()
}
fun trimTitle(raw: String): String = raw.trim()
fun main() {
val text = legacyCaption(" note ")
println(text)
}
Программа собирается и печатает строку без пробелов по краям, но рядом с вызовом появляется предупреждение об устаревшем API. Смысл аннотации именно в такой обратной связи от компилятора, а не в отдельном шаге во время выполнения.
Другие готовые пометки в Kotlin задают правила для DSL, подавляют предупреждения или связывают объявление с платформенным кодом. У каждой метки свой смысл, но модель одна: компилятор видит пометку рядом с объявлением и действует по её правилам.