Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗ktSpAnTg 129 of 299 menu
◀ ▶

Место пометки в Kotlin

У одного объявления в Kotlin иногда несколько «слотов»: параметр конструктора, поле, свойство, геттер. Если метку поставить без уточнения, компилятор выбирает цель по умолчанию, и смысл может оказаться не тем, что задумано.

Префикс перед именем пометки задаёт цель явно. Запись @param:Doc крепит метку к параметру конструктора. Запись @property:Doc - к свойству, которое из этого параметра появляется у класса.

Для учебной подписи к полю профиля оба префикса можно указать на одном параметре:

annotation class Doc(val note: String) class Profile( @param:Doc("constructor argument") @property:Doc("public property") val handle: String )

Параметр handle существует только в момент создания объекта: к нему относится пометка с @param:. После инициализации снаружи видно уже свойство handle - для него действует метка с @property:. Тексты в примере разные, чтобы в отчётах и инструментах было видно, какая цель выбрана.

Тот же приём подходит, когда одна строка описания нужна только свойству, а параметр остаётся без отдельной подписи:

annotation class Doc(val note: String) class Session( @property:Doc("stored session id") val id: String ) fun main() { val s = Session("s-1") println(s.id) }

Объявите метку с параметром note типа String. Создайте класс заказа с параметром code в конструкторе: на него повесьте @param: и @property: с разными строками.

Добавьте класс склада с одним строковым свойством из конструктора. Подпись через @property: должна описывать только свойство, без @param: на том же параметре.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить