Своя пометка в Kotlin
Свой тип пометки описывают через annotation class.
У него нет тела с логикой - только параметры, которые
компилятор сохраняет вместе с меткой. Строковый
параметр удобен для короткой подписи команды или
модуля.
Объявление метки с одним строковым полем выглядит так:
annotation class Owner(val team: String)
Перед функцией указывают имя метки и значение параметра в скобках. Компилятор связывает подпись с объявлением функции:
annotation class Owner(val team: String)
@Owner("billing")
fun chargeInvoice() {
println("charge")
}
Тот же тип можно повесить на класс - тогда пометка относится ко всему типу, а не к одной команде:
annotation class Owner(val team: String)
@Owner("platform")
class GatewayConfig(val endpoint: String)
fun main() {
val cfg = GatewayConfig("https://api.local")
println(cfg.endpoint)
}
Объявите метку с параметром layer типа
String. Повесьте её на функцию записи
лога и на класс настроек очереди с одним
строковым свойством. Значения слоя должны
различаться.
Создайте экземпляр класса настроек из предыдущей
задачи и выведите его строковое свойство из
main.