TGViewer
Android Live 🤖 Android Live 🤖 @android_live · 5.12K subscribers
Post #723 2.89K
​​Настройка видимости extension-функций
#kotlin

Extension-функции — довольно крутая фича языка Kotlin. Это позволяет расширять функциональность классов без изменения класса. Ну а вызываются эти функции совершенно также, как и те, которые относятся к этому классу, правда выделяются другим цветом в IDE.

Сегодня я нашёл не самую очевидную функциональность, которая позволяет настраивать области видимости этих функций при помощи интерфейсов и дженериков.

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

Допустим, у нас есть класс Vehicle, который может относиться одновременно и к автомобилю, и к космическому кораблю. И есть extension-функция, которая называется:

fun Vehicle.cruiseTheBoulevard(): String {

return "cruising the boulevard with my ${getMakeAndModel()}"
}


и которую логично применить только для автомобиля.
Вместо описанной выше функции мы можем написать такую, сделав пустой интерфейс:

fun <T> T.cruiseTheBoulevard(): String where T: Vehicle, T: LandVehicle {

return "cruising the boulevard with my ${getMakeAndModel()}"
}


Таким образом, мы будем применять эту функцию только для классов, которые являются Vehicle и LandVehicle. Выглядит немного сложнее, чем стандартная функция, однако о такой возможности тоже полезно знать.
More from @android_live
  1. Sep 29, 2026Post #1130
  2. Sep 29, 2026На днях попалась вакансия мечты Вроде всё начинается как неплохо: удалёнка, Kotlin/Jetpack…
  3. Sep 28, 2026На днях ревьювил код, связанный с копированием в буфер обмена И заметил, что многие прилож…
  4. Sep 26, 2026AirDrop на Android, похоже, уже есть на нескольких моделях Android Но, оказывается, всё эт…
  5. Sep 25, 2026Похоже, есть что посмотреть на выходных Недавно вышло интервью с Женей Вороновым Jake Whar…
  6. Sep 15, 2026Google выкатили ARTEMIS Эта инструмент, который превращает обычный текст в реальные действ…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →